Class2 Software Process

Featured Animated Featured Animated
Uploaded from authorPOINT
Download as
 PPT
Presentation Description 

No description available

authorSTREAM Premium Service
What's up on authorSTREAM?
Views: 1187
Like it  ( Likes) Dislike it  ( Dislikes)
Added: August 14, 2007 This Presentation is Public 
Presentation Category : Entertainment All Rights Reserved
Presentation Transcript

Software Process: Software Process Chapters 1 and 3 (Sommerville)


What is a Software?: What is a Software? Documents Database Configuration scripts or data Example: Video game: models, programs, database of objects, behaviors…


Software Types: Software Types Generic Product Stand-alone systems Generic Tools Customized products


What is software engineering?: What is software engineering? Apply methods: coding, design Apply tools: jsp, java, UML To build a software Sometimes use ad hoc methods, not completely formalized


What is Software Process?: What is Software Process? Activities: Specification (what) Design (how) Coding/development Testing/validation Maintenance (change!)


Specification (What): Specification (What) Feasibility study Can we do it using the tools, time and budget constraints? Requirements Analysis Figuring out specifics of what we need to do. (You did part of that last class) Requirements Spec Document everything you found out. Why? Requirements Validation Show them to customers, do prototypes


Design (how): Design (how) Architecture Subsystems, and their relationships Abstract spec. Subsystem services and constraints Interface design Methods or messages between subsystems This is important. Why? We are going to do this Thursday


Design (how): Design (how) Component Design Services and interface Data Structure or class design Algorithm design


Structured Models: Structured Models Data-flow model Entity Relation model (should have seen that in Dbase) Object oriented methods (inheritance, class/object interaction and relationship) State Transition models


Programming: Programming Modular programming Even object oriented programming can become messy Don’t be afraid of redesigning the code or starting from scratch


Testing: Testing Unit Testing Module/object testing Subsystem testing System testing Acceptance testing } Done by programmer } Done by testing group


Software Myths: Software Myths ' If we are behind the schedule, just add more programmers' 'Nine Women cannot make a baby in nine months'


Software Myths: Software Myths ' Once we write the program and get it to work, our job is done' '60%-80% of all effort expended on software will be expended after it is delivered for the first time'


What is Software Process?: What is Software Process? Activities: Specification (what) Design (how) Coding/development Testing/validation Maintenance (change!) In what order?


Challenges: Challenges Wiked problems Customers don’t know what they want Hard to change code, esp. with evolution of programming languages


Methods the people developed: Methods the people developed The waterfall model Separate and distinct phases of specification and development Evolutionary development Specification and development are interleaved Formal systems development A mathematical system model is formally transformed to an implementation Reuse-based development The system is assembled from existing components


Waterfall Model (1970): Waterfall Model (1970)


Advantages and Disadvantages: Advantages and Disadvantages Good when requirements are understood and problem has been attached before Cannot adapt to rapidly changing requirements or ill-defined problems


Building a software is like driving: Building a software is like driving ' Driving is not about getting the car going in the right direction. Driving is about constantly paying attention, making little correction this way, a little correction that way' – from XP


Evolutionary Development: Evolutionary Development Exploratory development Objective is to work with customers and to evolve a final system from an initial outline specification Throw-away prototyping Objective is to understand the system requirements. Should start with poorly understood requirements


Evolutionary Development: Evolutionary Development Problems Lack of process visibility Systems are often poorly structured Special skills (e.g. in languages for rapid prototyping) may be required Applicability For small or medium-size interactive systems For parts of large systems (e.g. the user interface) For short-lifetime systems


Reuse Oriented Development: Reuse Oriented Development Requirements Spec. Research Existing Components Rework Requirements Design Component Integration and testing


Process Iteration: Process Iteration System requirements ALWAYS evolve in the course of a project so process iteration where earlier stages are reworked is always part of the process for large systems Two (related) approaches Incremental development Spiral development


Incremental Method: Incremental Method


Spiral Model: Spiral Model Process is represented as a spiral rather than as a sequence of activities with backtracking Each loop in the spiral represents a phase in the process. No fixed phases such as specification or design - loops in the spiral are chosen depending on what is required Risks are explicitly assessed and resolved throughout the process


Spiral Method: Spiral Method


Spiral Model: Spiral Model Objective setting Specific objectives for the phase are identified Risk assessment and reduction Risks are assessed and activities put in place to reduce the key risks Development and validation A development model for the system is chosen which can be any of the generic models Planning The project is reviewed and the next phase of the spiral is planned


Settlers of Catan : Settlers of Catan Homework for next class Think of how you can develop it What is the architecture What are the major components What is the interface and relationships between components Bring that to class, we will Discuss architecture andamp; components Assign teams For each team a component will be assigned