Beruflich Dokumente
Kultur Dokumente
SOFTWARE PROCESS
Introduction S/W Engineering Paradigm life cycle models (water fall, incremental, spiral, WINWIN spiral, evolutionary, prototyping, object oriented) - system engineering computer based system verification validation life cycle process development process system engineering hierarchy.
What is Software?
Software is a set of items or objects that form a configuration that includes programs documents data ...
What is Software?
The basic software have following characteristics: Software is engineered Software doesnt wear out Software is complex
software is engineered
Software is developed or engineered, it is not manufactured in the classical sense.
Software Applications
system software real-time software(application sw) business software engineering/scientific software embedded software PC software AI software WebApps (Web applications)
Satisfy user requirements High reliability Low Maintenance costs Delivery on time Low production costs High Performance Ease of use
(Source: Pressman, R. Software Engineering: A Practitioners Approach. McGraw-Hill, 2005) 7
Software engineering
Software engineering (SE) is the application of a systematic, disciplined, quantifiable approach to the design, development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software. The computer science discipline concerned with developing large applications. Software engineering covers not only the technical aspects of building software systems, but also management issues, such as directing programming teams, scheduling, and budgeting.
(Source1: Pressman, R. Software Engineering: A Practitioners Approach. McGraw-Hill, 2005) Source2:
Wikipedia
Cont..
A systematic approach to the analysis, design, implementation and maintenance of software. Software engineering is the engineering discipline through which software is developed. Commonly the process involves finding out what the client wants, composing this in a list of requirements, designing an architecture capable of supporting all of the requirements, designing, coding, testing and integrating the separate parts, testing the whole, deploying and maintaining the software. Programming is only a small part of software engineering.
(Source: Pressman, R. Software Engineering: A Practitioners Approach. McGraw-Hill, 2005) Source1
: Wikipedia
Cont..
The Software Engineering Body of Knowledge (SWEBOK) divides software engineering into 10 knowledge areas: Software requirements Software design Software construction Software testing Software maintenance Software configuration management Software engineering management Software engineering process Software engineering tools and methods Software quality
Wikipedia
10
A Layered Technology
Software Software Engineering Engineering tools methods process model
a quality focus
11
Process Flow
12
Process Flow
Linear process flow executes each of the five activities in sequence. An iterative process flow repeats one or more of the activities before proceeding to the next. An evolutionary process flow executes the activities in a circular manner. Each circuit leads to a more complete version of the software. A parallel process flow executes one or more activities in parallel with other activities ( modeling for one aspect of the software in parallel with construction of another aspect of the software. )
(Source: Pressman, R. Software Engineering: A Practitioners Approach. McGraw-Hill, 2005) 13
14
17
Some of other examples are: 1. Online event management system. 2. Material resource planning in a manufacturing unit
18
increment # n
increment # 2
increment # 1 delivery of 1st increment
In the diagram above when we work incrementally we are adding piece by piece but expect that each piece is fully finished. Thus keep on adding the pieces until its complete.
(Source: Pressman, R. Software Engineering: A Practitioners Approach. McGraw-Hill, 2005) 23
24
Communication
60 90 days
25
26
27
Communication
Modeling
analysis design Start
Deployment
delivery feedback
(Source: Pressman, R. Software Engineering: A Practitioners Approach. McGraw-Hill, 2005)
Construction
code test
29
The spiral model demands a direct consideration of technical risks at all stages of the project Examples of Spiral model The evolution of Microsoft Operating System, Compilers and other operating systems.
(Source: Pressman, R. Software Engineering: A Practitioners Approach. McGraw -Hill, 2005) 30
33
Prototyping
Q u ick p lan
u i t o Communication
Quick plan
Construction Co s t r c i n of f r t t pe prototype
35
Advantages
1. 2. 3. 4. Iterative process facilitating enhancements. Partial products can be viewed by the customer. Flexibility of the product. Customer satisfaction of the product.
36
Prototyping - Problems
1. Customers may press for immediate delivery of working but inefficient products 2. The developer often makes implementation compromises in order to get a prototype working quickly 3. No optimal solution. 4. Time consuming if the algorithm used is inefficient. 5. Iterative process continues forever which cannot be stopped at a particular stage. 6. Poorer documentation resulting in difficult maintenance.
(Source: Pressman, R. Software Engineering: A Practitioners Approach. McGraw -Hill, 2005) 37
Under review
Under revision
Baselined
Done
39
System Engineering
- Computer-based system - System engineering process - Business process engineering - Product engineering
Computer-based System
41
Introduction
Software engineering occurs as a consequence of system engineering System engineering may take on two different forms depending on the application domain
Business process engineering conducted when the context of the work focuses on a business enterprise Product engineering conducted when the context of the work focuses on a product that is to be built
Both forms bring order to the development of computer-based systems Both forms work to allocate a role for computer software and to establish the links that tie software to other elements of a computer-based system
42
System
System
A set or arrangement of things so related as to form a unity or organic whole A set of facts, principles, rules. etc., to show a logical plan linking the various parts A method or plan of classification or arrangement An established way of doing something such as a method or procedure
43
Computer-based System
Defined: A set or arrangement of elements that are organized to accomplish some predefined goal by processing information The goal may be to support some business function or to develop a product that can be sold to generate business revenue A computer-based system makes use of system elements Elements constituting one system may represent one macro element of a still larger system Example
A factory automation system may consist of a numerical control machine, robots, and data entry devices; each can be its own system At the next lower hierarchical level, a manufacturing cell is its own computerbased system that may integrate other macro elements
The role of the system engineer is to define the elements of a specific computer-based system in the context of the overall hierarchy of systems
(Source: Pressman, R. Software Engineering: A Practitioners Approach. McGraw-Hill, 2005) 44
A computer-based system makes use of the following four system elements that combine in a variety of ways to transform information
Software: computer programs, data structures, and related work products that serve to effect the logical method, procedure, or control that is required Hardware: electronic devices that provide computing capability, interconnectivity devices that enable flow of data, and electromechanical devices that provide external functions People: Users and operators of hardware and software Database: A large, organized collection of information that is accessed via software and persists over time
45
46
"Always design a thing by considering it in its next larger context a chair in a room, a room in a house, a house in an environment, and environment in a city plan"
(Source: Pressman, R. Software Engineering: A Practitioners Approach. McGraw-Hill, 2005) 47
48
Cont..
Stated in a slightly more formal manner, the world view (WV) is composed of a set of domains (Di), which can each be a system or system of systems in its own right. WV = {D1, D2, D3, . . . , Dn} Each domain is composed of specific elements (Ej) each of which serves some role in accomplishing the objective and goals of the domain or component: Di = {E1, E2, E3, . . . , Em} Finally, each element is implemented by specifying the technical components (Ck) that achieve the necessary function for an element. Ej = {C1, C2, C3, . . . , Ck}
(Source: Pressman, R. Software Engineering: A Practitioners Approach. McGraw-Hill, 2005) 49
50
Simplifications
These enable the model to be created in a timely manner
Limitations
These help to bound the maximum and minimum values of the system
Constraints
These guide the manner in which the model is created and the approach taken when the model is implemented
Preferences
These indicate the preferred solution for all data, functions, and behavior They are driven by customer requirements
52
Different Views
Users
Designers
Analyzers
53
Actor
overview the usage requirements presentations project stakeholders "the meat" of the actual requirements Use case: System boundary: Actor:
Use case
indicates A use case the describes scope of ayour sequence An actor is a person, organization, of system. Anything that provide within the box or actions external system that something plays a of represents measurable functionality value to an that actor is in role in one or more interactions and scope drawn and anything as a horizontal outside the with is your system ellipse box is not
Online C2C shopping
54
Class Diagram
Name Class diagrams show the classes of the system, their interrelationships (including inheritance, aggregation, and association), and the operations and attributes of the classes.
Aggregation Generalization
Associations
Relations
Attribute s Operation s
55
Sequence Diagram
Object: Class
A sequence diagram is An interaction diagram that details how operations are carried out. What messages are sent and when. Sequence diagrams are organized according to time
Message Operations
Lifeline
56
Activities Diagram
Start Fork Activity diagrams describe the workflow behaviour of a system
Branch
Merge
Joint
57
End
58
59
61
Product Engineering
62
Product Engineering
Product engineering translates the customer's desire for a set of defined capabilities into a working product. It achieves this goal by establishing a product architecture and a support infrastructure Product architecture components consist of people, hardware, software, and data Support infrastructure includes the technology required to tie the components together and the information to support the components
63
Cont..
Requirements engineering elicits the requirements from the customer and allocates function and behavior to each of the four components System component engineering happens next as a set of concurrent activities that address each of the components separately Each component takes a domain-specific view but maintains communication with the other domains The actual activities of the engineering discipline takes on an element view Analysis modeling allocates requirements into function, data, and behavior Design modeling maps the analysis model into data/class, architectural, interface, and component design
(Source: Pressman, R. Software Engineering: A Practitioners Approach. McGraw-Hill, 2005)
64
Database Engineering
Function
Behavior
Data/Class Design
Architectural Design
Interface Design
Component Design
Construction
(Source: Pressman, R. Software Engineering: A Practitioners Approach. McGraw-Hill, 2005) 65
Validation:
"Are we building the right product". The software should do what the user really requires.
66
67
V& V goals
Verification and validation should establish confidence that the software is fit for purpose. This does NOT mean completely free of defects. Rather, it must be good enough for its intended use and the type of use will determine the degree of confidence that is needed.
(Source: Pressman, R. Software Engineering: A Practitioners Approach. McGraw-Hill, 2005) 68