class2 Software Process

Uploaded from authorPOINT
Views:
 
Category: Entertainment
     
 

Presentation Description

No description available.

Comments

By: Amalka (14 month(s) ago)

Thanks lot its help for may exam

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