Home
case study
Contents
1. Table declarations e Primary keys often auto allocated e g defect item s primary key to be allocated by database e Foreign keys defect introduced by user so defect record will have a foreign key that is primary key in user table Other fields User Name Initials encrypted password 80 Elaboration Database classes Consider defect In table unique id date type foreign keys for phase task In memory e Unique id date type are ok e Do you want foreign keys as longs class Defect private long id task phase date d string type e Ordo you also load in phase and task data and build class Defect private long id Task tsk Phase phs date d string type You probably don t know which way to go at this stage it is going to depend on the most typical patterns of processing pick simpler style now but remember you may have to change later 82 Elaboration PSP tools Gary devised some SQL create table statements given their first database design diagram Tables created by running scripts departure from earlier plan of having application create tables dynamically Later they considerably simplify their data model and change all the tables Such a change allowed in lightweight approaches More formal Waterfall methods would have required them to do more careful analysis of data model at this stage and then have had the database design
2. A minimal set of use cases just enough to start an Another high priority is getting some preliminary work done in area of i high risk areas where difficulties can be expected or where team knows executable architecture will get at least partially it lacks significant expertise starting these early helps quantify risks implemented in elaboration phase and in worst case means project can be abandoned before too much e Some beginnings of user interface effort expended e Some minimal functionality Customer ranking of functionality F i 3 titerati f tiati ith Other priority constraints e g feature X depends on feature Y Or Se hs Sse re et ene OLNEJOUAUON WNI therefore feature Y must have higher priority so it gets done first customer users needed to clarify requirements and PSP tools priorities for use cases accommodate changed perceptions 1 create database 2 add data 3 report data Other use cases e Assign them to iterations in construction according to priority order an iteration will deal with some number of use cases 34 Inception 2 Went Time boxing iterations g Initial Project Plan This is typical e Other artefacts A A S Initial plan must also specify phase and If woen engaged in Iteration x you find that it iteration in which other artefacts will be isn t going to be completed you get approval for delivered lowest priority feature assigned to that
3. No database guru 5th member John dropped the project early on had been designated as database guru Should have spent more time team building early on Should have been more serious about testing Should have used a better defect tracking system a What mark did Pollice s team get for their CSCI321 project PSP tools e Designers of CSCI222 2005 2006 95 HD great perfect model for CSCI222 base all assignments on this work 88 HD yes 90 HD CONCUD wen to ve honest 1 diant actualy read it e NABG 70 Cr they hacked lt had an advantage not shared by CSCI321 projects e An involved customer Russell e His presence made a continuous use testing approach feasible Executable architecture did develop fairly early and subsequent iterations did build on this 6 05 2014 PSP tools assessment a Tts Yes it is more like a CSCI321 project than was intended e Typical CSCI321 problems Group member drops out Team members inexperienced in some aspects of technology Most of the tools used were new to team members Most of coding work done by a subset of team members contribution of other members is limited Lack of planning resort to hacker style development Inappropriate assumptions about technology An example of RUP Phases and iterations were followed Importance of executable architecture was recognized Attention w
4. Chose a code versioning tool Chose testing tools Chose tools to record management information such as the plans could just be a spreadsheet or even a word processor document End of RUP inception the Lifecycle Objective Milestone Conventional RUP requires an evaluation point the Lifecycle Objective Milestone at end of inception This should verify Stakeholder concurrence on scope definition and cost schedule estimates Requirements understanding as evidenced by the fidelity of the primary use cases Credibility of the cost schedule estimates priorities risks and development process Depth and breadth of any architectural prototype that was developed Actual expenditures versus planned expenditures Some of these elements not relevant to PSP tools as there were no budgets costs etc it really is more like an open source collaborative project than a real costed industry project Some Inception Wi 4 oman e You can vary the formality of RUP for inception p bd 4 e You can make it like Waterfall Complete business modelling e Work through all requirements e Hand over to next phase e Or more like XP e Minimal requirements e No analysis paralysis e Start implementing with user on hand e Is this what you want e Is it better now e What do you want next oni Programming Elaboration aims Not yet the product e Aims A stable ar
5. 1 try to Change my logn nane to an existing user s Russel Customer logn name ofp 0065 P2 Trying to change my name to an existing user results in the system Russel Customer therbang i am that user ofp 0066 PI Last database does not ahways get updated as I expect d uplosdedto Russel Customer Gary on 05 06 2003 0067 PI The task description box should show more than one ine cf PFE Russel Customer 0088 P3 The commert box on the defect and time ertry dialogs should show Russel Customer magie ines 1 RFC 0069 P2 use Prefs mil should go N the user s home Grectory d goce 0070 P2 Add planned OC to database pact 26 27 2003 droo Russel Customer 73 PS System hangs in uressual case go woke 5 26 03 7 59 Ft OO721P 1 Software tries to Ug ade to a lower version of the databace gip qookke 5 30 03 9 18 AM 0073 P2 Numerk Paid Warnings on cresting a new Time Ertry cf fwod and dowe t ttt stn bs D 0066 P3 Last database does not always get updated as I expect cll uploaded to Gary on 05 06 2003 by Russel Costomer on Mar 24 2003 1 41 30 PM i am working in a database D1 and then open a database D2 D1 gets closed before 02 opens would expect that the menu tern for opening the most recent database would change to show D1 This is not the case The same thing happens if just close the Gotebese The menu does not get updeted unti close the tool and come back on This can get b
6. 4 fnn Experiencing RUP A na ve view of RUP e Rational Unified Process RUP is a process model that defines Who needs to do What and When it must be done by in order to achieve Goals defined in Project Vision Guidelines e Project groups aren t expected to use all the RUP stuff in any particular project e Groups follow those RUP guidelines that are appropriate given the scope and nature of the project that they are working on One of the first tasks is development of the Development Case which identifies hose aspects of RUP that will be used 6 05 2014 Phases Workflows Inception Elaboration Co Business Modeling Requirements Analysis amp Design Implementation Test Deployment Configuration amp Change Mgmt Project Management Environment Iterations RUP e Extremely detailed guidelines 30 different roles for team members e g developers sub classified as architects designers user interface designers capsule designers database designers implementors integrators Each role characterized by e List of activities e List of artefacts that must be produced e g user interface designer must produce a navigation map and a user interface prototype Each discipline Requirements Deployment characterized by a detailed workflow model A RUP example Experience RUP vicariously by reliving the experience
7. Describes essentially every e Java GUl back end data store application via JDBC e C Visual Basic Winforms using data access objects and a back end data store Ublties e Developing this architecture was easy for PSP tools guys 4 We ve done dozens of applications like this roll out EJ the standard elements Objects 75 76 Elaboration Elaboration Not always so easy in CSC1321 hoe Database design e May be required to construct an interface using a technology with which no group member is familiar TCL TK for GUI interfaces maybe e Does it support Tree Views Tabbed Panes e Are the GUI elements instances of classes or are they something else e Application may require an architecture more elaborate than those that you have met Single process Two tier process that talks to database Simple WWW browser client middleware database 77 78 Elaboration Elaboration 13 Database design e Tables entities The different types of data item you wish to store For PSP tools Projects Users many users participate in a project Phases several phases in a project Tasks many tasks in a project each task the responsibility of one user Time entry time entry associated with user phase amp hence project and task DefectEntry similar 79 Elaboration Database e Effectively defining entity classes at same time e You read a user record
8. openManager databaseFactory and PSPdatabase 53 Elaboration 6 05 2014 50 Elaboration Now how did we get to those classes e Magic e The textbooks NEVER explain this e It is probably the hardest part of this stage of development 52 Elaboration Lots of use of previous experience What is this databaseFactory There is nothing in use case s text description that suggests the presence of any such class Gary is using a design pattern with which he is familiar Factory Method define an interface for creating an object but let subclases decide which class to instantiate Gary has used something similar in another project and has just assumed it will be relevant here 54 Elaboration Use previous experience There is nothing in use case or the text description that suggests the presence of this factory class e In fact its occurrence will probably turn out later to be wrong at this stage they imagined that they might be creating different kinds of database structures data for PSP level 0 differs from data needed for PSP level 1 so maybe they needed to created different kinds of PSPDatabase object So Factory makes it possible to create different kinds of database object given parameter data They will probably simplify that later 55 Elaboration No previous experience So how do you get your classes categories if you don t hav
9. Member 4 I ll take the role of listening for inputs on GUI forms from my friend member 3 am probably several objects listeners of different classes for different forms My role as listener is to get the work done via Member 2 and or member 1 FII tell member 3 what results to display Member 5 I m main create all you other guys and set links so you can talk to one another Then my thread sleeps Don t ask me to do anything Member 6 I suppose I m the user 58 Elaboration Guessing classes TN createButtonListener lt N Owns reference to loginPanel reference to databaseManager Does Owns textfields Name buttons create connect Does handle action event on create button access functions readName maybe showErrorAlert readPassword 2 maybe showErrorAlert Record the things you own the things you do who you talk to what you ask them to do 10 Classes Responsibilities Collaborations Game play your roles 4 t fonini Member 6 I close that stupid error alert I fill in my name in and my password hit 3 s create button Member 4 I m a createButtonListener object ask 3 LoginPanel for the name and password ask 2 in her guise of loginChecker to check the name password combination Member 2 In my role of loginChecker ask 1 database to retrieve the encrypted password for user with name from the users table Memb
10. database If an error occurs display an aml select OK appropriate error mes andl end this nse case use case otherwise proceed with Altemate 1 New User to Project Database r proceed with the next step Display the appropriate vie database for this user 48 This is their version of scenarios Elaboration And MAGICALLY classes appear e Gary project lead lots of experience on similar projects e Draws up an initial UML sequence diagram Elaboration Classes mainFrame openDialog openManager databaseFactory PSPDatabase 51 Elaboration P 4 4 t fonini They aren t classes anyway What Gary has done is introduce a number of Categories category a priori conceptions applied by the mind to sense impression or relatively fundamental philosophical concepts Gary has worked on similar applications Gary knows that There will be a control element that picks up a Do create database command from some form of GUI so he infers that there is a something that he declares as a mainFrame object This will result in display of a dialog where user enters details of database that is to be created hence Gary s openDialog Input data will be used e Firstly to confirm authorization name password checks maybe e Then to parameterize the code to create the tables e Garry is guessing here and picks
11. developers who must then sell it to venture capitalists PSP tools team had been commissioned to develop the software Most of projects you will be working on in future will similarly have been commissioned either by marketing seeing some product niche or by another part of company having some perceived need for software In these cases Vision thing s role is to establish some common understanding of project for development team and commissioning customer Vision will be fleshed out as get into requirements gt RS ly Prini Identify some features e PSP tools record personal statistics e Time e Software defects Source code size reporting e Personal reports e Team reports Viewing Statistics lterate a bit with your initial use cases e PSP tools team reduced that initial use case diagram down to this Open Project N Database 6 05 2014 Identify non functional AVT Non functional requirements requirements e Typical things e Generally aspects such as Must be implemented using AAA and BBB running on the CCC Usability operating system because those are standards for the company e Accessibility aesthetics consistency Must run reasonably on a machine with following configuration Reliability y g g e Scheduled downtimes recoverability after various disasters i oe Performance Must be built using a process that complies with standa
12. dialogs e Greater experience with javax swing classes FINALLY the data go into the database tables Well OK now do have a kind of executable architecture e Two weeks remember they are working part time so that probably means about 16 hours work 120 construction 20 O Construction Iteration 3 e Features Create a database from within PSP tools e As noted earlier this is only meaningful if using small file based databases like Cloudscape where each database with all its tables is created in a separate file e Creating a new schema in a real database would have been more involved and usually wouldn t be possible as only the database administrator can create schema Right click pop up context sensitive menus associated with tree view 121 construction Balance of effort new amp improve 100 90 80 70 60 50 40 30 20 Defects and fine tuning 10 z 0 4 Iteration a Ne w tanni Single quotes in fields e Curious Highlighted as a problem Everyone knows that issue easily resolved if use PreparedStatement rather than Statement e Varchar field for comment e SQL of form update datatable1 set description Info e Get s unhappy when you put in Gary s Info e Well they did note that they didn t have a database guru on their team 125 construction A w w onini O 4 t tnn
13. from database Either you only want one field select password from users where username and initials if this is always the case then can take data from result set Or you want to use more of the data in which case you probably want a class User that you can instantiate and fill in details 81 Elaboration Database consistency etc e Enumerated type e g Defect type how about defining a constraint on values of field in table so database validates info on entry e Foreign keys you cannot expect PSP tools user to know the unique id for project and for their identity when recording a defect or time entry implicit requirement that your processing code will have to get this information from data tables once user has logged in and identified task for which they are entering data in PSP tools they load the data into the tree view how are they going to identify task your code will have to present a list showing possible tasks Look how just thinking about data table has given you a whole series of subtasks that you should record so that they can be scheduled and allocated e Deletes cascading the changes Remove a task Not appropriate in this application but similar applications will have deletes All time logs and all defects relating to that task should be deleted 83 Elaboration 6 05 2014 Database design e As you refine your ideas you get to
14. mechanisms for identifying incompatibilities and for migrating existing data You will probably create similar problems for yourselves in CSCI321 124 construction Testing JUnit style tests continued Also made use of a Java code coverage tool But how do you test a GUI They made use of a specialist tool Records actions Generates a script their tool generated Java code Can then rerun this script anytime and tool with drive operations on the program under test 126 construction 21 6 05 2014 gt Testing script code fragment ee x Transition Phases Frame PSP Tools Workflows z PSPMainFrame click PSPMainFrame click Business Modeling Hopefully nothing for these menubar click atPath File disciplines menubar click atPath File gt Open Filename click JDialog inputChars d pspproject project1 Analysis amp Design Open click PSPLoginDialog click passwordtext click PSPLoginDialog inputChars psp Logint clickt Configuration Building self installing versions of tree click atPath project1 amp Change Mgmt programs menubar click atPath Project Project Management menubar click atPath Project gt New Task Environment Requirements Implementation Hopefully not much here either Test Deployment Finalizing documentation etc Iterations 127 Nene eee m 08 construction transition Transitio
15. of the PSP tools team Textbook Software Development for Small Teams A RUP Centric Approach G Pollice L Augustine C Lowe J Madhur PSP tools team Not a textbook An experience report As an experience report quite useful Software Development for Small Teams Small team Real though relatively simple application Essentially a system for recording work records how much time what task etc etc Has a few reporting functions that generate summary statistics Team using slightly simplified version of Rational Unified Process RUP more typically used with somewhat larger projects Team s records the book detail an experience of RUP hence you can share their experience and so decide if RUP is good for you qq Also slightly contaminated RUP they drop into lighter weight XP practices in places Not a student project in style of CSC I321 4 gare e Team Each individual has specializations wherein they are competent e Gary project lead business systems degree software engineering grad school familiar with problem domain PSP 30 years experience different methodologies limited RUP experience e Liz technical writer also tester tool engineer 20 years experience comp sci degree programmer before becoming tech writer tools engineer tester interested in light weight process e Chris Develope
16. real database guru lt 2 K KETT Workflows Business Modeling Requirements Analysis amp Design Implementation Test Deployment Configuration amp Change Mgmt Project Management Environment a Yrs Actually PSP tools group had a pre inception phase Meet as group Introduce selves Explain what you view as your strengths and weaknesses Discuss roles that you might take on later Begin to notice possible weaknesses of group hence risks that will be identified in the inception stage Get some idea of project PSP tools group all did e A little reading about PSP A couple of exercises on manually recording times on tasks as if they were using PSP This pre inception phase is not standard In real world most of group will already have worked as colleagues on other projects in a company and so introductions and identification of potential roles already accomplished GOOD IDEA to try something like this when starting your CSCI321 project or any large group project component in another subject A KA A tonini Inception iterations e Usually Inception phase has just one iteration Might get second iteration if risk analysis of first proposal suggests it will fail could then try again with a changed vision for proposed product e Style of RUP project here is similar to old waterfall model business model requirements analysis and design are large
17. L class diagram maps easily to SQL createtable 96 Elaboration 16 Elaboration Entity classes e They really were thinking in terms of the database tables e They could simply have used SQL create table statements and created the tables e Many systems can import meta data from database and use this to create entity classes or entity class diagrams have feeling that they were hacking a bit at this stage a little too much agility not enough thinking things out 99 Elaboration fs PSP tools group adopts Test Driven Development strategy e Really an XP practice e You are planning to implement class X which in this phase has functionality f1 f2 and f3 e You start by thinking up tests Create an X object Initialize it Ask for property value Invoke f1 operation that should change that property s value Ask for changed property value Assert difference between original and new values is the difference that was expected 101 Elaboration 6 05 2014 PSP tools Entity classes abie These are the users of thes project database CREATE TABLE Users userName VARCHAR 50 NOT NULL VARCHARI20 UNIQUE NOT NULL VARCHAR 20 name String Re aw opnName Sting INTEGER DEFAULT AUTOINCREMENT INITIAL 1000 INCREMENT 1 password Sring userDoesorioton Sying null useriD int UNREGISTERED _USER e NULL Chief curmudgeon ciowe NULL The smart o
18. Ma D Print O 4 t tnni 6 05 2014 PSP tools view of state at end of elaboration e We have an executable architecture e We have refined the scope Taken out some things that would have been too hard We have a sketch of an iteration plan for construction phase they don t appear to include it in the text 104 Elaboration S A bit light on the planning e The account in the book suggests that there was significantly less work done on planning managerial analysis design then might be expected for a professional RUP project e Examples Iterations e Not shown the iteration plan devised for construction phase e 12 iterations reported Twelve iterations in 8 weeks Really these are after the fact iterations they ve added something and decided that the extension justifies a new internal release to the customer representative and the quality assurance part of team Classes e Evidence suggests no UML class designs 106 construction Maw Agile As noted in text this wasn t a pure RUP model They also wanted to get some experience with agile methods XP eXtreme Programming gets a couple of mentions unit test strategies were XP motivated Agile methods do tend to go more lightly on the design documentation so no UML class diagrams code first reverse engineer afterwards to get documentation Waterfall RUP Agile Hacker Student You c
19. acts and roles in the RUP from the development case P A 4 fonini 6 05 2014 s PSP tools development case PSP tools development case artefacts System Analyst _ User Interface Designer Artifacts How to use Review Tools Responsible Inception Elaboration Construction Transition details used Data Designer M Formal ReqPro System Software Architect amp MS lAmhst Word Integrator Formal ReqPro System Rose amp Analyst MS Test Designer Word Implementer Tester Deployment Manager Technical Writer Configuration Manager Project Manager Process Engineer Tool Speaalist We will create the use case models in the inception phase modify them during elaboration naturally the Vision thing is created at inception We allocate Initial who does what map define the roles that group members will fill responsibility for these artefacts to roles as shown PSP tools Inception i PSP tools Inception e Start developing environment e Iteration plan for rest of inception phase environment discipline management discipline PSP tools group picked up some Artefact who responsible when due collaborative workspace product auet fe ee om e Think of it as structured bulletin board Hien po TOTS ay Red n02 Jas hris J me Jas 15 2002 hris PSP tools Inception AVT eE A PSP tools Problem stat
20. an position your work style anywhere along this axis Whatever you choose you will encounter problems the particular difficulties you meet vary with your chosen style 108 construction 18 A w R gare O 4 4 x tnni Environment RUP diagram shows hump for environment discipline at the start of each phase You extend your environment Different support tools required in the different phases you must install make available to team members and possibly train some team members in their use PSP tools A few extra problems They switched existing tools as well Sun Forte Java IDE replaced by Eclipse etc When doing your CSC1I321 project try to avoid following the example of this team in regard to environment changes Typically at start of construction phase Start using code versioning system seriously Additional testing tools code coverage scripted GUl testers batch scripts for regression testing come into use Code generators may be used possibly necessitating training in their use 109 construction 0061 P3 When creating a new Getebese the dialog button should say Now rather Russel Customer than Open ofp foed n 5 5 2003 release OOG PI User Information Balog is tted Add User gdo Feed in 5 5 2003 release Russel Customer 0063 P3 User Information dalog 6 ahvays N Updote state Jp feed n 5 5 2003 Russel Customer renye 0064 PI Poor error message
21. as paid to different RUP disciplines they did explicitly consider some of management and other tasks associated with each phase RUP milestones and their deliverables did help guide what the team did in each phase 23 Weaknesses e From a RUP perspective too little effort in analysis design and planning e It has too much the flavor of an XP or hacker style project 6 05 2014 24
22. ass that has essentially all the program s business logic e Some entity classes that are really just structs representing rows ina relational database A few minor wrapper classes e g a wrapper around the datastore code that allows switching between file based and relational table style data repositories Good designs e business logic assigned appropriately to meaningful application specific business classes e Use of design patterns like Command Observer Flyweight Singleton which suggest groups of classes useful when handling tasks such as those that emerge in use cases 56 Elaboration Classes Responsibilities Collaborations Game pick your roles Group members play act roles of things in program Member 1 I m the database can crud a table don t ask me to do anything else am unique ama singleton Member 2 I ll manage the database creating new PSP project tables accessing existing tables So am THE DATABASEMANAGER think m a singleton but there might be more than one of me will also pretend to be another object something that verifies log ins to make sure that only authorized people create of use tables In this role l m definitely a singleton Member 3 I like being schizophrenic l Il pretend to be each of the GUI data entry forms and responses So represent several objects from several different classes at different times
23. base represents a single project where participants are using PSP so don t have to keep track of which project users and tasks belong to etc a lot of earlier relations between entities have gone so removing need for foreign keys etc 95 Elaboration 6 05 2014 Build a GUI No functionality behind it Just a GUI See book for their arguments as to why they made this their starting point More the agile style They have a tame user they want to keep Russell constantly involved showing him bits and asking is this right They argue that changes to GUI have major ripple effects causing changes to all other parts hence they argue that do as much as possible to get the GUI right early on 92 Elaboration Early GUI e Important to explain to quality testers and customer representatives that functionality is limited or non existent e Otherwise Defect report log gets filled with bug reports about things not working when engineers knew they weren t implemented yet 94 Elaboration Simple entity classes They defined a number of simple entity classes each corresponding to a table Entity objects represent rows Documented them with UML class diagrams but these are simply lists of the fields table columns No real functionality defined for these classes Presumably though not shown there are getX accessor and setX mutator functions for each field UM
24. chitecture e No more radical changes Hey lve just had a great idea lets make it web based 3 tier client server instead of a Unix shell script e Lesser changes are permitted in later phases Use cases elaborated with key scenarios worked through Detailed plan for iterations in subsequent construction phase Development environment effective and stable The beginnings of executable software The start of automated re testing system for subsequent additions and changes e Success of elaboration to be evaluated at end when reach the Lifecycle Architecture Milestone 45 Elaboration PSP tools Elaboration Iteration Plan Artifact e Responsible Comment 4 Updated project plan tary Through first construction iteration review agreed upon Unit test harness iris Installed and team members trained 4 Acceptance tests Defined with initial scripts and run for implemented functionality User interface Chris Ready to be enhanced for the prototype product approved by customer Software Architecture ohn With preliminary design model Who is John Document Oh he withdrew from CSCI321 about week 7 of session 1 We had to finish without him Builds and components Test Plan iris me page describing the general Initial draft Schema defined Note defining tests some members started thinking about acceptance tests use the system to perform tasks black box testing others thinking abou
25. de and entity classes e They have their unit test framework set up the tests are scripted they will be able to automatically retest after every change from now on 103 Elaboration Workflows Business Modeling i ee Requirements refined again Requirements Feedback and experience n Analysis amp Design More analysis and design i Most of implementation Implementation Unit testing continues lt 5 Test testing occurs Deployment Deployment issues explore i i Configuration eVersioning of all parts through Project Management Project management tasks Environment sImprove environment l Iterations construction 4 Ne RS tnni No UML class design e Supposedly we Create designs Diagram them in UML Review Work out interaction patterns document these Then code e They dived into coding after only limited design e Appear to have Reverse engineered the code to get UML diagrams Reverse engineering is a feature available in professional versions of things like RationalRose Use is meant to be e Create UML design overviews for imported or legacy code e Reduce work involved in updating UML diagrams to maintain consistency with code after refactoring They don t put reverse engineering into the versions of RationalRose used when learning UML because they dont want to encourage such hacking 107 construction A
26. dn t ever think of that mess you up and divert you to work on support tasks Cost time Time that was never budgeted Will make your project run late and cost too much PSP tools Installation e Technically less sophisticated group members representing customers couldn t install and run the prototypes e Have to divert effort into obtaining and learning how to use one of those systems that lets you create self installing applications How to use the GUI e Found it necessary to get a Windows screen recording thingy that let them record movies of sessions so that potential users could in effect watch demonstrations 90 Elaboration 15 laboration steps toward the first executable e PSP tools Starting Install Java Install a database product Cloudscape e Often people choose things like MySQL or Apache Derby for the database used in development phase e The Developer or Express editions of DB2 SQLServer Oracle etc might be more appropriate Picked a code versioning system Defined their project in terms of layers user interface control and business logic persistent data used this to define an initial package structure 91 Elaboration Faked Data shown in tree defined by constants in early code Data added via form panels isn t added to anything 93 Elaboration arts They simplified their database model Main thing is that now the data
27. e Gary s experience Try the Classes Responsibilities Collaborations game Group members play act roles of things in program Try exploring how user requests might be handled Note e the things you need to know for your role e The requests that you receive e The requests that you make to others 57 Elaboration Classes Responsibilities Collaborations Game play your roles Member 6 I want to create a database Member 3 I suppose I d better be a LoginPanel object somehow 5 had better arrange that I m displayed first when the program starts show name and password fields and create database connect to database buttons Member 6 I fill in my name in and hit 3 s create button Membe 4 I m a createButtonListener object 5 arranged that was waiting for this button press ask 3 LoginPanel for the name and password there is no password shucks think can probably put up an error alert dialog I m not going to do anymore work now if can t put up the error alert then it will have to be a responsibility of 3 59 Elaboration 6 05 2014 w ont expect these classes categories to survive through many iterations These won t be your actual classes A few more iterations are necessary to get your initial class definitions in terms of owns and does Caution weit from use cases often leads to bad designs where you have a main cl
28. e annoying think that the menu should be updated every tme a project is dosed 111 S Traceability matrix ze FEA2 2 Record Defects Defect Tracking The System should provide Individual developers can FEAS Statistical Statistical Analyses FEA7 1 PSP Level 1 A complete PSP level 1 FEAS 1 Data access FEA2 1 Record time FEA2 3 Record Size FEA3 1 Personal personal propect Allows users to create FEA4 1 Personal FEA PSP Level 1 Ou cf the bow PSP 1 Time FEA2 Record Personal Record Personal FEA3 2 Create a team tear project FEA4 Reporting i gt amp UCI Open Project Databaze UC1 1 Basic Flow Select Project amp UC1 2 Alternate Flow Add New User UC1 3 ARernate Flow Open Last UC2 Record Personal Engineering 2 UC2 1 Basic Flow Create New task UC2 2 Alternate Flow Update UC2 3 Alternate Flow Enter Actual UC2 4 Atemate Flow Update UC2 5 ARernate Flow Enter Defect UC2 6 Aternate Flow Update UC2 7 Alternate Flow Time an UC3 Maintain a Project Database UC3 2 Alternate Flow Edit a Project UCA Run Personal Reports UC4 1 Basic Flow Run Personal UCS Run Team Reports UC5 1 Basic Flow Run Team amp SSHEG444 A Mr D Prini 6 05 2014 gt Management e Put in place system for defect tracking PSP tools illustration sho
29. e was expected to test it and report any defects found Russell or Gary often added requests for enhancements after considering priority and effort the became new requirements Then Russell and Gary would reallocate work based on the priorities We did this all without a formal planning cycle 115 construction Construction a first iteration amp PSP Tools Fie Project Help Detects New Time Entry Y Time Detects New Defect Entry New User Developer Gory F Police Task Name Size Counter Description mplemert the classes to count Ines of code Begin Date 2002 04 06 117 construction Delighters e More hacking e Amore thoroughly planned RUP project would have identified the need for user preferences and factored these in to the construction iterations and also resolved issues of where to store preferences which apparently became a problem in a later iteration Basic preferences support would have been scheduled for a construction iteration probably the iteration after that where data persistence achieved Different preference features would have been scheduled into later iterations 119 construction 6 05 2014 me Construction a first iteration e An executable architecture that actually does something Details are not clear from the account but it appears that a user of the PSPtool program construction version 1 could e Open an existing databa
30. ement the Vision A What problem are we trying to solve Problem Statement Who are the stakeholders Who are the users What are their respective needs What are the product features What are the functional requirements Use Cases describe the problem who it affects how it affects them and What are the non functional requirements what typeof solution would ease the pain What are the design constraints 7J PSP tools Position statement If you could develop software that would solve the problem described in the Problem statement who would buy it and what would make it unique Identify stakeholders e Customers e Management e Team e Others Some projects will need to satisfy government regulations etc e g privacy of data then someone in organization will have to act as a proxy for government checking project s compliance PSP tools stakeholders were the team members and the customer Russell Sketch some high level use cases Eraser Project Dota e Software Engineer will use e Process administrator will use PSP tools to PSP tools to Create project Configure system Enter data Configure project Count items Install PSP tools Use on line help when needed Use on line help when needed Create report A N gai 6 05 2014 Getting the money Sometimes Vision thing is created by entrepreneurial
31. er 1 I m the database crud return data Member 2 I encrypt supplied password compared with crudded data they match return OK Member 4 I m still the createButtonListener resume my work on the login now ask 2 DATABASEMANAGER to create database Member 2 Er problem here you haven t told me anything about the new database table should there be some additional input data Should login be a separate step from create using different GUI panels maybe 61 Elaboration Elaboration testing e Gary Chris to do most of programming Decided to do it xP style with test driven development and unit testing e First write the test plan Let s follow the RUP guidelines 63 Elaboration 29 pages like this 65 Elaboration 6 05 2014 D O Somehow magic occurs e Based on previous experience or CRC role play you do get Some initial classes e Owns Does e Talks to And some guess at an interaction diagram for the use case that you are working on 62 Elaboration Table of Contents lt Project Name gt Test Plan Version lt 1 0 gt 64 Elaboration RUP test plan template Data and Database Integrity Testing e Test Objective Ensure database access methods and processes function properly and without data corruption Technique Invoke each database access meth
32. frozen That would have made the implementation problems they had much more serious 84 Elaboration 14 Management activities e Engineering backlog Note examples e CRC role play participants noted that their conceived user interaction hadn t provided the data needed to create a tables e Decisions about data stored for a time record or defect record identified need to retrieve keys identifying user and a list of keys and descriptions for tasks Add these to project engineering backlog 85 Elaboration Engineering backlog e This is an agile feature e Less agile approaches require that you have the foresight to identify all the tasks before you start the phase so there won t be anything to add e Agile is more realistic 87 Elaboration Management e Keep records of features Their revised priorities Iterations for implementation Release 89 Elaboration 6 05 2014 Engineering backlog PP Book Project Space Engineering Backing Groove 0a oe Elaboration Nanagement feature cull and re prioritize e PSP tools Originally had some idea of allowing users of PSP tools to customize it so that they could select the data to be recorded etc Requires customization of data entry forms data tables entity classes etc Ooops too hard Defer to release 2 88 Elaboration Incidentals e Things you di
33. i 6 05 2014 Construction Iterations 4 12 Iteration Functionality Added C4 Incorporated activity time and defect entries Also implemented activity timer that updates the database directly Implemented ability to update task summary information directly from the task summary panel Added line counter tool to the program Improved login dialog Removed need to run with a Cloudscape database server Installed database schema changes and automatic database upgrade mechanism Added the Database Properties dialog box Added basic export function Made user information editable Added program size and estimation tab Added ability to delete a task Delivered a self extracting archive that unpacked the required files into a target directory and removed dependencies on the user s environment Fixed defects Released an initial User s Guide Added an executable program for Windows that launched PSP Tools Users no longer needed to run a batch file and extra windows no longer appeared on the user s task bar 22 construction S Database versioning They were still hacking re factoring their entity classes and the way their program interacted with the database Tables and entity classes being changed Consequently databases created by QA and customer are incompatible with later releases of the software Their approach meant that they had to devote effort to
34. iteration to be pushed into a later iteration Initial plan just defines order as plans revised As PSP tools was a more amateur project dates get added they were working in their spare time they didn t do time boxing to be honest they really didn t plan the iterations for the construction phase They still did feature culling Initial Project Plan Completion Dates Planned Rev ised Actual 10152002 PSP tools initial plan Plan done by 10 Oct Environment set up Vision complete by Supplementary requirements Initial use cases by Risk list Test plan Finish Inception Iteration Artifact 10 15 2002 fioy202 4 4 4 Initial project plans 10112002 t t Inception iteration plan 1012002 103 2002 10 3 2002 4 4 Working g environment set uf including the project repository I project Web site Updated project plan 8 Identify risks and propose countermeasures e No good just identifying risks have to outline how they will be reduced e Examples Use IMS e Convince customer to allow use of relational database e Separate out a distinct sub process that crudsf with IMS employ a consultant to implement it New Environment New Methodology e Pay for training courses Difficult team member e Invoke help from the gods O 4 t tonni crud create read update delete a Ne w gare PSP tools end of ince
35. ly completed e Some agile methodologies would already have code being generated and its behaviour being evaluated by the customer final functionality of product being left incompletely specified gt P K KETT 6 05 2014 gt S Four phases PSP tools group describe their activities for four phases of RUP What they did What parts of RUP got used What they should have done Inception 1 week Elaboration 3 weeks Construction 8 weeks Transition 3 weeks A KA R tunini Inception Workflows Business Modeling Most of the business modelling Requirements Chunk of requirements Analysis amp Design A little high level analysis and design Implementation Test Deployment Configuration amp Change Mgmt Project management tasks e g who will Project Management z do what Environment A A tonni PSP tools Inception e Development case Really part of the project management discipline Decide how to use RUP e A development case is a brief description of how you should apply the RUP what artefacts to produce when and with what formality how to map roles to people in your project and so on You typically produce a development case for a project or a type of project The development case should be very short ideally only a couple of pages long Rather than duplicating information in the RUP you can link to activities artef
36. n a Transition e RUP suggestions e PSP tools Users validate product does it really do what we 3 weeks specified a e With more agile styles this requirement should have already 7 Report well goen Pay PEM been satisfied by having the users involved in testing all the mentions incremental releases e Fix a bug User training e Finalize user manual on line help had disappeared Product packaging somewhere on route Installable code e Packaging for distribution they had really resolved this e Documentation earlier because of problems they had had making thing work for e Help files multi lingual their testers Support engineering e Training of users 129 130 transition transition 2 4 4 gare PostMortem phase of a project e Group meets to discuss project given benefit of hindsight e Task Identify where problems occurred and why Post M O rte m Identify what worked well e Aim Consolidate your experience e Build on what you did well e Take avoiding action early if you see similar problems arising in another project e Remember the final versions of the classes that you developed and the patterns of interactions among instances of these classes next time start with these as your pre conceived categories for analyzing use cases instead of the rubbish categories that you used when you started this project 22 PSP tools PostMortem e Some of the problems
37. ne iz Augustine leugustine NULL The efficient one iodur ymodhur NULL The cerebral one 98 Elaboration Classes other than entity classes e They ve built their GUI Used a GUl builder to assist the process e See their comments about problems that this can cause if you switch development environments e They ve got their entity classes e Now they need the bits with the control logic and the database managers the bits that really provide functionality 100 Elaboration JUnit testing e They created their unit test cases e For example They plan a class PSPUser e It has name and loginname fields these to be set by the constructor e It will have an equals operation Two PSPUsers are equal if they contain same strings in their name fields and in their loginname fields Hence test public void testEquals PSPUser u new PSPUser Gary Pollice gpollice Assert assertTrue u equals new PSPUser Gary Pollice gpollice 102 Uhm I m still not convince of the value of such micro tests R Elaboration 17 O End of elaboration phase e Build an executable architecture Er no e But they have a GUI toy that does nothing but does that in an attractive way that pleases the customer e They have some faked data inserted into tables so they will soon be able to start testing data management co
38. od and process seeding each with valid and invalid data or requests for data Inspect the database to ensure the data has been populated as intended all database events occurred properly or review the returned data to ensure that the correct data was retrieved for the correct reasons Completion Criteria All database access methods and processes function as designed and without any data corruption Special Considerations Testing may require a DBMS development environment or drivers to enter or modify data directly in the databases Processes should be invoked manually Small or minimally sized databases limited number of records should be used to increase the visibility of any non acceptable events 66 Elaboration 11 6 05 2014 RUP test plan heel PSP tools e Similar detailed templates e Er maybe not that stuffs for bigger Data and Database Integrity Testing roi ects Function Testing p J l Business Cycle Testing User Interface Testing e PSP tools Test Plan Performance Profiling Load Testing Each class will have corresponding unit tests Stress Testing No code will be checked into version control Volume Testing unless all unit tests pass Security and Access Control Testing p Failover and Recovery Testing Acceptance tests will be run and will pass Configuration Testing before any software is delivered to the Installation Testing customer 67 68 Elaboration Elaboration PSP tools accep
39. ption e Artefacts delivered An initial project plan Vision endorsed by the stakeholders Programming guidelines 1 Initial requirements The development environment set up and ready for the remainder of the project A test plan 1 An initial Risk List The iteration plan for the Elaboration iteration 1 Book doesn t contain any details of these in its Inception section O 4 t tnni 6 05 2014 Identify Risks This is the task that is impossible for students who usually end up relying on u nderg raduate humour struck by lightning thrown out of apartment break with girl friend boy friend both hard assignments in other core subjects In real world projects Business manager and project team leader list things that have in their past experience resulted in disruptions to similar projects Typical things Project requires arcane knowledge or obscure technical experience e g must utilize the IMS hierarchical database risk is that you won t find anyone with the requisite knowledge Project requires development environment or methodology that is new to most members Constraints on team members no recruitment must use existing employees may constitute risk difficult people etc gt a l PSP tools e They did a little more on setting up O 4 t tnni environment Chose an IDE
40. r tester 15 years C C Windows Windows GUI wants more Java has heard of RUP e Jas tester had some experience with RUP in a larger scale project knows a little about problem domain PSP e Russell Customer Business manager person who wants a usable PSP tools product 4 gare 6 05 2014 Why did Pollice et al write it It is a challenge for project managers and more generally software developers to find the development process that works best for their projects Ideally Try each of them on equivalent projects Pick the best Impossible So instead take guidance from published experience reports Not a student project in style of CSC I321 e Team Diverse All experienced All familiar to varying degrees with development language and development tools Some having limited experience in problem domain All have participated in a number of projects All had been employees of Rational and so knew about RUP and Rational s tools UML tool project management tool etc Project Guideline 1 Violated in all student projects e Get the right mix of people on your project Senior members who lead and teach junior members Gary chris Senior members have experience on similar projects Gary There are team members with existing technical expertise in all critical areas actually they had some problems here no
41. rd xxx s Throughpat tesponse umes Must have support for internationalization E Supportability Must meet following security requirements limiting access to e Ease of configuration deployment personal data Design constraints Must have 99 999 availability 24 365 e E g must work with hierarchical database Must accommodate visually impaired users Implementation constraints e E g Use C Interface constraints E g Must upload data from a Blackberry James Gibson the only Physical constraints real software engineer to ue have worked in this department e Usually only for military and embedded systems must run on hardware Take care when you see a requirement like that What seems says should use shall rather that fits in this box and uses this much power reasonable to you might seem pathetically bad to me You must than must Ta So quaintly archaic 31 get stakeholder to define a quantifiable measure of reasonableness Inception e PSP tools guys don t appear to have identified any non functional requirements during the inception phase 5 2 2 2 MH sanyo Initial Project Plan Initial Project Plan f ee re idee oats e Once you have prioritized use cases assign emembper two O e opirit o rules H i H i H REE eine Gh eae oe them to iterations in elaboration and construction e Stay focussed on executable software phase High priority on getting some minimal subset of overall project running
42. s architecture heading eee e Classes JFrame JPanel JTree JTabbedPane RUP puts architecture responsibilities with Configuration System Architect h Tabbed Pane interface with tabs for different input RUP ASSIGNS prototype GUI design to another forms tabular responses and message role User Interface Designer Hierarchical tree view for selecting subsets of data 71 Tr you know that tree views are easy to implement this influences your analysis 72 Elaboration and you end up suggesting to the user that some data should be displayed in a tree view Elaboration 12 6 05 2014 hoes i Menus and dialogs e Design model 1 Tabbed Pane has tabs for data input forms and for tabular presentations of selected data 7 e Design model 2 the one used by PSP tools abbed pane panels for different data entry forms Tabbed Pane only has tabs for displays of selected and responses data Data entry to be achieved by using menu to get dialog displayed data entered in dialog action button submits data and closes dialog Data a updates database and also tree view in left pane Tree view is active click on entry to place selected data in a structure that can then be viewed in a tabbed pane panel 73 Elaboration PSP tools package architecture i Architecture e Haven t really advanced much e The architecture derived so far
43. se Add time records and defect records still only stored in memory no persistence to database Appear in tree view can be processed when generating summary reports e View totals simple summary reports in tabbed pane panels 116 construction Construction a first iteration e Time for first iteration not specified e Book discusses delighters Something that costs nothing to implement and will delight users In this case it lead to a User Preference s file e Why a file Why not a table in database If you make it a file it isn t the same when user working own main desktop machine or on own laptop If you make it a file there will be issues with multiple users needing preferences files do you understand enough about home directories on different operating systems so that you can put the file there Atthis stage preferences file records the database last used the delighter feature makes it a one click step to open this database otherwise dialog needed name must be entered etc Cloudscape database a file you can have many different databases for things 118 like DB2 or Oracle you would have to be defining schema to achieve same thing construction tw Construction Iteration 2 e Features Help menu actually no help at this stage simply the About PSP Tools dialog Improved Project menu New User dialog Prettier
44. t unit tests white bo Testing 47 Elaboration o 4 4 fonni 6 05 2014 Elaboration Phases Workflows io Business Modeling Tail end of the business modelling Requirements Requirements refined Analysis amp Design Most of high level analysis and Implementation Test Deployment eA chunk of implementation t Unit testing begins Configuration amp Change Mgmt Project Management Environment Version your source code Project management tasks Iterations Elaboration Elaboration e Artefacts may include Updated versions of Vision Document e Risk List e Software Development Plan e Iteration Plan e Use Case Model Supplementary Specifications Finalized documented version of the non functional requirements Prototypes e explore software ideas demonstrate specific behaviour Software Architecture Document e Logical View e Use Case View e Process View e Deployment View Design Model Implementation Model F collection of components data and subsystems that express the product esign Project Specific Templates and Tools i Elaboration w SP tools elaborate the use cases e Fill in some detail HOW e Based on experience with similar things in other projects e Guessing e They initially created text descriptions Any User PSP Tools 1 Select Open Open project use case 2 Specify a project database 3 Open the project
45. tance tests i Architecture e They started sketching these Really just a variant on the existing use case description with a few PSP tools persons admit they cannot give a good annotations definition of architecture page 83 A guess as to how eventual user might interact with some interface Highest level concept ofa system in its environment element Actually multiple levels Process and inter process communication level e What processes make up system e What machines do they run on e How do they intercommunicate e What messages are exchanged Process e Subparts GUI interface Database interface Control code Business logic parts 1 Select Open Project Database M file dialog prompt specify a pe i Subpart e Principle classes and packages 69 70 Elaboration PSP tools is a simple single process application architectural effort reduced Elaboration Architecture PSP tools Use previous experience Slightly odd here e A good analyst is a biased analyst Under heading architecture they discuss e The GUI design proposed reflected lots of their first ideas as to user interface ith J f k The packages GUI managers control database experience wi ava Swing trameworKk data objects and utilities Gary Chris knew swing classes most often i used to create GUIs and common GUI The GUI design didn t really seem to fit the configuration
46. ws most of defect notices being raised by Russell Customer who continues to be supplied with executable releases More typically defects logged by e Your group s Quality assurance person performing black box testing of the system e Developer s flagging problems with code that has been done in an earlier iteration 110 construction A 4 t tnni Management e Requirements traceability Get list of agreed requirements from updated Vision produced at end of elaboration phase Check that each requirement has a use case associated with it Check that each use case is being developed into code 112 construction O 4 s 4 x tnni Construction e Executable architecture from elaboration Nothing relating to e Generating reports e Viewing data from time records or defect records e Recording size data for tasks Faked GUI support but no underlying processing of data or persistence for e Recording time on tasks e Recording defects 114 construction 19 Construction iterations e First couple of iterations look as if there may have been some planning prior to commencement of construction subsequent iterations are serendipitous Chris and Gary worked at a steady pace to implement the needed functionality Every few weeks they produced a build that was ready for testing When the build was released anyone could and everyon
Download Pdf Manuals
Related Search
Related Contents
MICROWAVE OVEN SERVICE MANUAL Sony DVP-K86P User's Manual Weider X1S User's Manual ZP3 Operating and Maintenance Instructions Smeg CV 270 A User's Manual "取扱説明書" N3635 仮想テープ装置 Melissa Electric Heating Pad 631-015 User's Manual Copyright © All rights reserved.
Failed to retrieve file