Presentation is loading. Please wait.

Presentation is loading. Please wait.

Review of Definitions Software life cycle: –Set of activities and their relationships to each other to support the development of a software system Software.

Similar presentations


Presentation on theme: "Review of Definitions Software life cycle: –Set of activities and their relationships to each other to support the development of a software system Software."— Presentation transcript:

1 Review of Definitions Software life cycle: –Set of activities and their relationships to each other to support the development of a software system Software development methodology: –A collection of techniques for building models - applied across the software life cycle

2 Coping with change  Change is inevitable in all large software projects.  Business changes lead to new and changed system requirements  New technologies open up new possibilities for improving implementations  Changing platforms require application changes  Change leads to rework so the costs of change include both rework (e.g. re-analysing requirements) as well as the costs of implementing new functionality 2

3 Reducing the costs of rework  Change avoidance, where the software process includes activities that can anticipate possible changes before significant rework is required.  For example, a prototype system may be developed to show some key features of the system to customers.  Change tolerance, where the process is designed so that changes can be accommodated at relatively low cost.  This normally involves some form of incremental development. Proposed changes may be implemented in increments that have not yet been developed. If this is impossible, then only a single increment (a small part of the system) may have be altered to incorporate the change. 3

4 Unified Process Model A process model that was created 1997 to give a framework for Object-oriented Software Engineering Iterative, incremental model to adapt to specific project needs Risk driven development Combining spiral and evolutionary models

5 Unified Process Model Iterative process: development is divided into short fixed length mini projects (called iterations). Each iteration has requirement analysis, design, implementation and testing. Output of each iteration is tested integrated executed system that grows with each iteration.

6 Iterations Iterations are timeboxed (i.e. fixed in length) Best iteration length (2-6 weeks)

7 Advantages of UP Rapid feedback from users and developers –Then adapt to changes in the next iteration (adaptive development) Visible progress Start with high risk Manage complexity by dividing the problem into smaller ones

8 Stages of the UP

9 Inception: Customer communication, project vision and planning activities (feasibility study) Elaboration: multiple iterations that refines the requirements and models of the system Construction: develop software code Transition: user testing and installation Production: operation

10 Inception Stage Perform feasibility study ….. Identify the project vision (vision document) Identify general business requirements Identify project and business risks Produce initial use-case model (10-20%) Plan the elaboration stages Rough architecture of the software (subsystems)

11 Elaboration Stage An iterative process where refinements are made on system requirements, system design, develop part of the code and test it. Products from these iterations: –Refinements on use-case model –Software architecture description –Executable prototypes –Initial design model –Refinement on project risks and plan

12 Construction Stage Translate the design into software components Products of this stage are: –Design model –Integrated software components –Test plan and test cases –User documentation

13 Transition Stage Deliver the software and documentation Get user feedback from Beta tests

14 Changes in activities according to stages

15 Important Definitions Artifacts: any work product (e.g. code, database, documents, models, user manual) Milestones are the end-point of a process activity Deliverables are project results delivered to customers

16 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 16 Artifact Sets in the Unified Process Artifact set: A set of artifacts developed and reviewed as a single entity The Unified Process distinguishes five artifact sets Management set Requirements set Design set Implementation set Deployment set Also called the engineering set.

17 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 17 Artifact Sets in the Unified Process Requirements Set 1. Vision document 2. Requirements model(s) Design Set 1. Design model(s) 2. Test model 3. Software architecture Implementatio n Set 1. Source code baselines 2. Compile-time files 3. Component executables Deployment Set 1. Integrated pro- duct executable 2. Run-time files 3. User documentation Management Set Planning Artifacts 1 Software Project Management Plan (SPMP) 2. Software Configuration Management Plan (SCMP) 3. Work breakdown structure 4. Business Case 5. Release specifications Operational Artifacts 1. Release descriptions 2. Status assessments 3. Change Management database 4. Deployment documents 5. Environment. Engineering Set

18 Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 18 Life-cycle Focus on Artifact Sets Each artifact set is the predominant focus in one stage of the unified process. InceptionElaborationConstructionTransition Management Set Requirements Set Design Set Implementation Set Deployment Set

19 Artifact Set Roadmap InceptionElaborationConstructionTransition Management Set Requirements Set Design Set Deployment Set 1. Vision 2. WBS 3. Schedule 4. Conf. Management 5. Project Agreement 6. Test Plan 1. Analysis Model 1. System Design 2. Interface Specification Implementation Set 1. Source code 2. Test cases 1.Alpha-Test/ Beta-Test 2. User Manual Informal Baseline


Download ppt "Review of Definitions Software life cycle: –Set of activities and their relationships to each other to support the development of a software system Software."

Similar presentations


Ads by Google