Sreyas Institute of Engineering and Technology
An Autonomous Institution
Approved by AICTE, Affiliated to JNTUH
Accredited by NAAC-A Grade, NBA (CSE, ECE & ME) & ISO 9001:2015 Certified
SOFTWARE ENGINEERING
- T V DIVYA
Evolving Role of Software
Software is a product
Software is a vehicle for delivering a product
What is Software ?
Software can define as:
Software products may be developed for a particular customer or may be developed for a general market.
Hardware vs. Software
Hardware | Software |
|
|
Manufacturing vs. Development
Failure curve for Hardware
Failure curve for Software
When a hardware component wears out, it is replaced by a spare part.
There are no software spare parts. Every software failure indicates an error in design or in the process through which design was translated into machine executable code. Therefore, software maintenance involves considerably more complexity
Component Based vs. Custom Built
Software characteristics
Changing nature of software
System Software:
Ex. Compilers, operating system, drivers etc.
Application Software :
Engineering /Scientific software:
Ex. Computer Aided Design (CAD), system stimulation etc.
Embedded Software:
Ex. keypad control for a microwave oven.
Product line software:
Ex. Word processing, spreadsheet, CG, multimedia, etc.
Web Applications:
Artificial Intelligence software
Ex. Robotics, expert system, game playing, etc.
Software Myths
Definition: Beliefs about software and the process used to build it. Myths have number of attributes that have made them insidious (i.e. dangerous).
Management myths
Managers in most disciplines, are often under pressure to maintain budgets, keep schedules on time, and improve quality.
Myth1: We already have a book that's full of standards and procedures for building
software, won't that provide my people with everything they need to know?
Reality :
Myth2: If we get behind schedule, we can add more programmers and catch up
Reality: Software development is not a mechanistic process like manufacturing. Adding people to a late software project makes it later.
Myth3: If I decide to outsource the software project to a third party, I can just relax and let that firm build it.
Reality: If an organization does not understand how to manage and control software projects internally, it will invariably struggle when it outsource software projects
Customer Myths
Customer may be a person from inside or outside the company that has requested software under contract.
Myth: A general statement of objectives is sufficient to begin writing programs— we can fill in the details later.
Reality: A poor up-front definition is the major cause of failed software efforts. A formal and detailed description of the information domain, function, behavior, performance, interfaces, design constraints, and validation criteria is essential. These characteristics can be determined only after thorough communication between customer and developer.
Myth: Project requirements continually change, but change can be easily accommodated because software is flexible.
Reality: Customer can review requirements and recommend modifications with relatively little impact on cost. When changes are requested during software design, the cost impact grows rapidly. Below mentioned figure for reference.
Practitioner's myths
Myth1: Once we write the program and get it to work, our job is done.
Reality: Someone once said that "the sooner you begin 'writing code', the longer it'll take you to get done." Industry data indicate that between 60 and 80 percent of all effort expended on software will be expended after it is delivered to the customer for the first time.
Myth2: Until I get the program "running" I have no way of assessing its quality.
Reality: One of the most effective software quality assurance mechanisms can be applied from the inception of a project—the formal technical review.
Myth3: The only deliverable work product for a successful project is the working program.
Reality: A working program is only one part of a software configuration that includes many elements. Documentation provides a foundation for successful engineering and, more important, guidance for software support.
Myth4 : Software engineering will make us create voluminous and unnecessary documentation and will invariably slow us down.
Reality: Software engineering is not about creating documents. It is about creating
quality. Better quality leads to reduced rework. And reduced rework results in faster delivery times.
Software Engineering – Layered Technology
Layered Technology
A quality focus: the “bedrock”
Process model: the “framework”
Methods: technical “how to’s”
Tools: CASE preferred
Layered Technology
A quality Focus
Process:
Layered Technology
Methods:
Tools:
Process Framework
Software Process
Generic Process Framework Activities
Umbrella Activities
Framework activities
CMMI
CMMI OBJECTIVES
CMMI
CMMI Level
Level 1 (Intial) – All specific goals are performed as per defined by CMMI
Level 2 (Managed) –
Level 3 (Defined) –
CMMI Level (cont.)
Level 4 (Quantitatively Managed) -
Level 5 (Optimized) –
The CMMI represents a process meta-model in two different ways: (1) as a
“continuous” model and (2) as a “staged” model.
CMMI
CMMI REPRESENTATION as Continuous Stage
CMMI REPRESENTATION as Staged Stage
CMMI Components
Slide 34 of 146
REPRESENTATION OF PROCESS AREA IN CMMI
CMMI SPECIFIC GOALS AND GENERIC GOALS
SG 1 Establish Estimates
SP 1.1-1 Estimate the Scope of the Project
SP 1.2-1 Establish Estimates of Work Product and Task Attributes
SP 1.3-1 Define Project Life Cycle
SP 1.4-1 Determine Estimates of Effort and Cost
SG 2 Develop a Project Plan
SP 2.1-1 Establish the Budget and Schedule
SP 2.2-1 Identify Project Risks
SP 2.3-1 Plan for Data Management
SP 2.4-1 Plan for Project Resources
SP 2.5-1 Plan for Needed Knowledge and Skills
SP 2.6-1 Plan Stakeholder Involvement
SP 2.7-1 Establish the Project Plan
SG 3 Obtain Commitment to the Plan
SP 3.1-1 Review Plans That Affect the Project
SP 3.2-1 Reconcile Work and Resource Levels
SP 3.3-1 Obtain Plan Commitment
Project Planning Example for Specific Goals and Specific Practices
For example, project planning is one of Seven process areas defined by the CMMI for “project management”
GG 1 Achieve Specific Goals
GP 1.1 Perform Base Practices
GG 2 Institutionalize a Managed Process
GP 2.1 Establish an Organizational Policy
GP 2.2 Plan the Process
GP 2.3 Provide Resources
GP 2.4 Assign Responsibility
GP 2.5 Train People
GP 2.6 Manage Configurations
GP 2.7 Identify and Involve Relevant Stakeholders
GP 2.8 Monitor and Control the Process
GP 2.9 Objectively Evaluate Adherence
GP 2.10 Review Status with Higher-Level Management
Project Planning Example for Generic Goals and Generic Practices
GG 3 Institutionalize a Defined Process
GP 3.1 Establish a Defined Process
GP 3.2 Collect Improvement Information
GG 4 Institutionalize a Quantitatively Managed Process
GP 4.1 Establish Quantitative Objectives for the Process
GP 4.2 Stabilize Subprocess Performance
GG 5 Institutionalize an Optimizing Process
GP 5.1 Ensure Continuous Process Improvement
GP 5.2 Correct Root Causes of Problems
Waterfall Model or Classic Life Cycle
Waterfall Model
Waterfall Model
Waterfall Model
Waterfall Model
Waterfall Model
Waterfall Model
Waterfall Model
Spiral Model
Spiral Model
Spiral Model
Spiral Model
Spiral Model
Spiral Model
An Agile View Of Process
An Agile View Of Process
An Agile View Of Process
5.Motivated individuals and Give them the environment and support they need, and trust them to get the job done
6. The most efficient and effective method of conveying information and within a development team is face – to – face conversation.
7. Working software is the primary measure of progress.
8. The sponsors, developers and users should be able to maintain a constant pace indefinitely.
An Agile View Of Process
9. Continuous attention to technical excellence and good
design enhances agility.
10.Simplicity, the art of maximizing the amount of work not done essential.
11. The best architectures, requirements and designs emerge from self organizing teams.
12. At regular intervals, the team reflects on how to become more effective.
Agile Process Model
Agile Process Model
Agile Process Model
Agile Process Model
UNIT - II
Software Requirements
Functional and non-functional requirements
User requirements
System requirements
Interface Specifications
Software requirements document.
Requirements engineering process
Feasibility studies,
Requirements elicitation and analysis
Requirements validation
Requirements management.
Software Requirements
Software requirements
The different types of requirements are
SOFTWARE requirements
THE SOFTWARE REQUIREMNTS ARE REPRESENTED AS THE BELOW:
EXAMPLE OF The LIBSYS system
Functional requirements FOR LIBSYS
Non-functional requirements
Non-functional classifications
Non-functional requirement types
Non-functional requirements for lib sys
The user interface for LIBSYS shall be implemented as simple HTML without frames or Java applets.
The system development process and deliverable documents shall conform to the process and deliverables defined in XYZCo-SP-STAN-95.
The system shall not disclose any personal information about customers apart from their name and reference number to the operators of the system.
Domain requirements
User requirements
USER REQUIREMENT EXAMPLE FOR �LIBSYS requirement
4..5 LIBSYS shall provide a financial accounting system that maintains records of all payments made by users of the system. System managers may configure this system so that regular users may receive discounted rates.
Problems with natural language
however, various problems can arise when requirements are written in natural language sentences in a text document:
Guidelines for writing requirements
System requirements
Problems with NL specification
Alternatives to NL specification
INTERFACE SPECIFICATIONS
The requirements document
Users of a requirements document
IEEE requirements standard
Requirements document structure FOR LARGE PROJECTS
Requirements Engineering Processes
Requirements engineering process
Requirements engineering process
(1) Feasibility Study: These are concerned with assessing whether the system is useful to the business or not. It produces Feasibility Report.
(2)Requirement Elication and Analysis: It discovers requirements and produces system models.
(3)Requirements Specification : Converting these requirements in to standard format.
(4) Requirement Validation: checking that the requirements actually define the system that customer wants . It produces SRS document.
Requirements engineering process
Topics covered
Feasibility studies
Feasibility studies
(a) Information Assessment : It has 3 types
(1) Economic Feasibility – cost of equipments,budget
(2) Operational Feasibility – Easy to use or any training
(3) Technical Feasibility.- discuss about H/w aNd s/w req
Feasibility studies(Cont..)
(b) Information Collection: The software engineering organization discover answers for the following sample questions
Feasibility studies(cont..)
(3) Report writing: Based on these questions, the report is developed .The organization will take decision whether to continue the project or cancel the project
Topics covered
Requirement elicitation and analysis
Banking ATM system – An example
Banking ATM system – An example
For example, system stakeholders for a bank ATM include:
I. Current bank customers who receive services from the system
2. Representatives from other banks who have reciprocal agreements that allow each other's ATMs to be used
3. Managers of bank branches
4. Counter staff at bank branches who are involved in the day-to-day running of the system
5. Database administrators who are responsible for integrating the system with the bank's customer database
Banking ATM system – An example
6. Bank security managers who must ensure that the system will not pose a security hazard
7. The bank's marketing department who are likely be interested in using the system as a means of marketing the bank
8. Hardware and software maintenance engineers who are responsible for maintaining and upgrading the hardware and software
9. National banking regulators who are responsible for ensuring that the system conforms to banking regulations
Problems of requirements analysis
The requirements analysis process
The process activities are:
1. Requirements discovery This is the process of interacting with stakeholders in the system to collect their requirements. It uses different types of techniques like Viewpoints, Scenarios, Interviewing, Use cases, Ethanography
and documentation are also discovered during this activity.
2. Requirements classification and organisation This activity takes the unstructured collection of requirements, groups related requirements and organizes them into coherent clusters.
The requirements analysis process
3. Requirements prioritization and negotiation Inevitably, where multiple stakeholders are involved, requirements will conflict. This activity is concerned with finding and resolving requirements conflicts through negotiation.
4. Requirements documentation The requirements are documented and input into the next round of the spiral. Formal or informal requirements documents may
be produced.
The requirements analysis process
Techniques for requirements elicitation and analysis
Viewpoint-oriented elicitation
a) Interactive Viewpoints
b) Indirect viewpoints
c) Domain Viewpoints
Example of LIB SYS Viewpoint
Interviewing
1. Closed interviews where the stakeholder answers a predefined set of questions.
2. Open interviews where there is no predefined agenda. The requirements engineering team explores a range of issues with system stakeholders and hence develops a better understanding of their needs.
Scenarios
Scenario descriptions
Including
Event scenario - start transaction
Use cases
Library use-cases
Ethnography
Topics covered
Requirements validation
Requirements validation
These checks include:
1. Validity checks A user may think that a system is needed to perform certain functions which are mostly given by stakeholders with distinct needs so we have to keep validity checks wherever needed at every stage.
2. Consistency checks Requirements in the document should not conflict and will not change never. There we have to keep Consistency checks .
Example : Login ,Registration pages.
3. Completeness checks The requirements document should include all functions, and constraints intended by the system user.
Requirements validation
4.Realism checks :The requirements should be checked to ensure that they could actually be implemented by existing technology, These checks should also take account of the budget and schedule for the system development
5. Verifiability To reduce the dispute between customer and contractor, system requirements should always be written so that they are verifiable. This means that you should be able to write a set of tests that can demonstrate that the delivered system meets each specified requirement.
Requirements validation techniques
Requirements Management
Requirements fall into two classes:
1.Enduring requirements These are relatively stable requirements that derive from the core activity of the organization and which relate directly to the domain of the system. For example, in a hospital, there will always be requirements concerned with patients, doctors, nurses and treatments.
2. Volatile requirements These are requirements that are likely to change during the system development process or after the system has been become operational. An example would be requirements resulting from government healthcare policies.
Requirements Management Planning
Planning is an essential first stage in the requirements management process. For each project, the planning stage establishes the level of requirements management detail that is required. During the requirements management stage, you have to decide on:
.3. Traceability policies These policies define the relationships between requirements, and system
design that should be recorded and how these records should be maintained.
4. CASE tool support Requirements management involves the processing of large amounts of
information. Tools that may be used range from specialist requirements management systems to
spreadsheets and simple database systems.
(1) Requirements identification :
Each requirement must be uniquely identified so that it can be cross-referenced by other requirements and so that it may be used in traceability assessments.
(2) Requirement Change Management
1. Problem analysis and change specification During this stage, the problem or the change proposal is analyzed to check that it is valid.
2. Change analysis and costing The effect of the proposed change is assessed using traceability information and general knowledge of the system requirements. The cost of making the change is estimated and Once this analysis is completed, a decision is made whether to proceed with the requirements change..
3. Change implementation The requirements document and, where necessary, the system design and implementation are modified. Individual sections can be changed and replaced without affecting other parts of the document.
There are three types of traceability information that may be maintained:
1. Source traceability information links the requirements to the stakeholders who proposed the requirements ,When a change is proposed, you use this information to find and consult the stakeholders about the change
2. Requirements traceability information links dependent requirements within the requirements document. You use this information to assess how many requirements are likely to be affected by a proposed change and the extent of consequential requirements changes that may be necessary.
3. Design traceability information links the requirements to the design modules where these requirements are implemented.
(3) Traceability policies
Figure 7.12 shows a simple traceability matrix that records the dependencies between requirements.
A 'D' in the row/column intersection illustrates that the requirement in the row depends on the requirement named in the column; an 'R' means that there is some other, weaker relationship between the requirements.
Requirements management needs automated support; the CASE tools for this should be chosen during the planning phase. You need tool support for:
l. Requirements storage The requirements should be maintained in a secure, managed data store that is accessible to everyone involved in the requirements engineering process.
2. Change management The process of change management is simplified if active tool support is available.
3. Traceability management : Some tools use natural language processing techniques to help you discover possible relationships between the requirements..
(4) CASE tool support
Unit 3
Chapter 1 : Design Engineering
Design process and Design quality
Design concepts
Design model
Chapter 2 :Creating an architectural design
software architecture
Data design
Architectural styles and patterns,
Architectural design,
Chapter 3: Conceptual model of UML
Basic structural modeling
Class diagram
Sequence diagrams
Collaboration diagrams
Use case diagrams
Component diagrams.
Chapter : Design Engineering
Design Model
What is a Design Model?
Difference between Analysis model and Design model
Translating Requirement analysis Model in to Design Model
Design Quality
Quality Attributes
(1) Functionality:
* It is accessed by evaluating
=> the feature set(capacity) and capabilities of the program
=> the generality (majority) of the functions that are delivered
=> the security of overall system
(2) Usability:
* It is accessed by considering
=> human factors
=> overall aesthetics (art)
=> consistency
=> documentation
Quality Attributes
(3) Reliability:
* It is evaluated by
=> Measuring the frequency and severity of failure
=> the accuracy of output results
=> the Mean-Time-To-Failure [MTTF]
=> the ability to recover from failure
=> the predictability of the program
(4) Performance:
* It is measured by
=> Processing speed
=> Response time
=> Resource consumption
=> Throughput (amount of data being moved successfully)
=> Efficiency
Quality Attributes
(5) Supportability:
* It combines the ability to
=> extend the program [extensibility]
=> Adaptability
=> Serviceability
Design concepts
Design concepts provide the necessary framework for “to get the thing on right way”.
Design concepts
(1) Abstraction - Many levels of abstraction can be used to find a modular solution to any problem
Design concepts
* The word Open for a door
* Open implies a long sequence of procedural steps [e.g. Walk to the door, reach out and grasp knob, turn knob and pull door , step away from moving door etc..]
Design concepts
Data Abstraction
* We can define a data abstraction called ‘Door’
* The ‘door’ would encompass a set of attributes that describe the door [e.g. door type, swing direction, opening mechanism, weight etc..]
Design concepts
(2) Architecture
* It is the
=> Structure or organization of how program components interact
=> Structure of data that are used by the components
* The architectural design can be represented using one (Or) more number of different models
(i) Structural Models: It represents architecture as an organized collection of program components
(ii) Dynamic Models: It indicates how the structure (Or) system configure may change as a function of external events
(iii) Process models: It focus on the design of the business process that the system must accommodate
(iv) Functional Models: It can be used to represent the functional hierarchy of a System
Design concepts
(3) Patterns:
* A design pattern describes a design structure that solves a particular design problem with in a specified context
* The purpose of each design pattern is to provide a description that enables a designer to determine
=> Whether the pattern is applicable to the current work
=> Whether the pattern can be reused [to save design time]
=> Whether the pattern can serve as a guide for developing a similar but functionality (Or) structurally different pattern
Design concepts
(4) Modularity:
Design concepts
(4) Modularity:
* As the number of modules increases the cost to integrate the modules also increases
i.e.
As number of modules , the cost to develop and the cost to integrate the modules
Example: A desktop computer
* We modularize a design so that,
=> Development can be more easily planned
=> Software increments can be defined and delivered
=> Changes can be more easily accommodated
=> Testing and debugging can be conducted more efficiently
=> Long term maintenance can be conducted without series effects
Design concepts
(5) Information hiding:
* It suggests that “modules should be specified and designed so that information contained with in a module is in accessible to other modules that have no need for such information
=> Modifications are required during testing and later
=> during software maintenance
Design concepts
(6) Functional Independence:
* It is achieved by design a software that each module address a specific sub function of requirements and has a simple interface when viewed from other parts of program structure
* Why independence is so important?
=> Independent modules are easier to maintain
=> Error propagate is reduced
=> Reusable modules are possible
* Independence is assessed [estimated ] using two qualitative criteria:
=> Cohesion
=> Coupling
Module 1
Module 3
Module 2
A
B
F
E
D
C
COHESION:
* It is a measure of the closeness of the relationship between its components
* A component should implement a single logical function (Or) should implement a single logical entity
* All parts of the component should contribute to this implementation
Seven Levels of Cohesion:
(i) Coincidental Cohesion:
* The part of a component are not related, but simply bundled into a single component
(ii) Logical Association:
* Components that perform similar functions such as input, error handling and so on are put together in a single component
Design concepts
(iii) Temporal Cohesion:
* All of the components that are activated at a single time such as
=> Start up (Or) Shut down are brought together
Example: deleting data in all functions at a time
(iv) Procedural Cohesion:
* The elements in a component make up a single control sequence E.g. recursion function
(v) Communication Cohesion:
* All of the elements of a component operate the same input data (Or) produce the same output data, e.g. components will know the status of each other or request among them
(vi) Sequential Cohesion:
* The output from one element in the component serves as input for some other element
(vii) Functional Cohesion:
* Each part of the component is necessary for the execution of a single function
Design concepts
COUPLING:
* It is an indication of the strength of interconnections between the components in a design (how components are dependent on each other)
* Highly coupled systems, have strong systems with program units dependent on each other
* Loosely coupled systems are made up of components which are independent or almost independent
Design concepts
* Modules are tightly coupled, if they make use of shared variables (Or) if they interchange control information.
* Tightly coupling is also referred as common coupling and control coupling
* Loose coupling is achieved by ensuring that
=> Details of the data representation are held with in a component
* Its interface with other components should be through a parameter list
* If shared information is necessary, the sharing should be limited to those components
* Globally accessible information should be avoided wherever possible
Design concepts
“An important design objective is to maximize the module cohesion and minimize coupling”
COHESION | COUPLING |
Functional | Data |
Sequential | Stamp |
Communicational | Control |
Procedural | Common |
Temporal | Content |
Logical | |
Coincidental | |
Best
Worst
Best
Worst
Design concepts
(7) Refinement:
* It is actually a process of elaboration
* Refinement enables a designer to specify low-level details, as design progresses
* i.e. The statement describes information conceptually but provide no information about internal workings
* Refinement causes the designer to provide more and more details as each successive refinement occurs
Design concepts
(8) Refactoring:
* It is a process of changing a software system in such a way that it does not alter the external behavior of the code [design], yet improves its internal structure
* The existing system is checked for
=> Unused design elements
=> Inefficient (Or) Unnecessary algorithms
=> Poorly constructed (Or) inappropriate data structures
=> Any other design failures that can be corrected to yield a better design
Creating an Architectural design
What is Architecture?
162
Software architecture is the structure of the systems, which comprises
* It is an action that translates data objects defined as part of the analysis model into data structure at the software component level
* If necessary a database architecture at the application level.
1) Data design at the architectural level
2) Data design at the component level�
Architectural Styles
164
Data-Centered Architecture
165
Data-Centered Architecture
166
Data Flow Architecture
167
Data Flow Architecture
168
Call and Return Architecture
169
170
Object – Oriented architecture:�
171
Object – Oriented architecture:�
172
Layered Architecture
173
Architectural Patterns�
174
Architectural Patterns(contd..)
Architectural Design
176
Architectural Context
177
Actors
Subordinate systems
Superordinate systems
target system:
Security Function
uses
uses
peers
homeowner
Safehome
Product
Internet-based
system
surveillance
function
sensors
control
panel
sensors
Depends on
Used by
(1) Representing the system Context:
178
(2) DEFINING ARCHETYPES:
Example:
For a safe home security function the following archetypes are defined:
Example:* A node might be
=> Various sensors
=> Variety of alarm indicators
Example: => Alarm Siren => Flashing light => Bells
179
DEFINING ARCHETYPES:
Example:
* For a safe home security function the following archetypes are defined:
* A node might be
=> Various sensors
=> Variety of alarm indicators
(ii) Detector:
Example:
=> Alarm Siren => Flashing light => Bells
180
(3) Refining the architecture into components:�
181
(i) External Communication Management:
* It coordinates communication of the security system function with external entities
(ii) Control Panel Processing:
* It manages all control panel functionality
(iii) Detector Management:
* It coordinates access to all detectors attached to the system
(iv) Alarm Processing:
* It verifies and acts on all alarm conditions
182
183
What is the UML?
184
1
6
IMPORTANCE OF MODELING :
Through modeling, we achieve four aims
be.
system.
system.
4. Models document the decisions we have made.
Conceptual Model of the UML
186
The vocabulary of the UML encompasses three kinds of building blocks:
Conceptual Model of the UML
187
Conceptual Model of the UML
12
Conceptual Model of the UML
Figure : Classes
Classes:
a class is a description of a set of objects that share the same attributes, operations,relationships, and semantics. Graphically, a class is rendered as a rectangle, usually including its name, attributes, and operations
189
Conceptual Model of the UML
Interface:
Figure :Interfaces
190
Conceptual Model of the UML
Figure:
Collaborations
191
Conceptual Model of the UML
Figure :Use Cases
192
Conceptual Model of the UML
Figure :Active Classes
193
Conceptual Model of the UML
Figure :Components
194
Conceptual Model of the UML
Figure :Nodes
195
Conceptual Model of the UML
196
Behavioral things are the dynamic parts of UML models.
These are the verbs of a model, representing behavior over time and space. In all, there are two primary kinds of behavioral things.
Conceptual Model of the UML
an object or an
together with its responses to those events.
197
Conceptual Model of the UML
Figure: Packages
198
Conceptual Model of the UML
24
Figure 2-11 Notes
RELATIONSHIPS
A dependency is a using relationship that states that a change in specification of one thing (for example, class Event) may affect another thing that uses it (for example, class Window), but not necessarily the reverse.
-A generalization is a relationship between a general thing (called the superclass or parent)and a more specific kind of that thing (called the subclass or child).
-Generalization is sometimes called an "is-a-kind-of" relationship: one thing (like the class BayWindow) is-a-kind- of a more general thing (for example, the class Window).
-An association is a structural relationship that specifies that objects of one thing are connected to objects of another. Given an association connecting two classes, you can navigate from an objectof one class to an object of the other class, and vice versa.
-
-A plain association between two classes represents a structural relationship between peers, meaning that both classes are conceptually at the same level, no one more important than the other. Sometimes, you will want to model a "whole/part" relationship, in which one class represents a larger thing (the "whole"), which consists of smaller things (the "parts"). This kind of relationship is called aggregation, which represents a "has-a" relationship,
DIAGRAMS
204
25
UML DIAGRAMS (as per your syllabus)
Class diagram
Example :
Example of a House Plan class Diagram
Fig: sample class diagram of online order
Modelling Techniques of class diagram
Modelling Simple Collaborations
To model a collaboration,
∙ Use scenarios to walk through these things.
with getting a good balance of responsibilities. Then, over time, turn these
into concrete attributes and operations.
Common modelling Techniques
(c) Both of these classes inherit the five operations of their parent, Motor. The two classes are, in turn, shown as parts of another class, Driver. The class PathAgent has a one-to-one association to Driver and a one-to-many association to CollisionSensor. No attributes or operations are shown for PathAgent, although its responsibilities are given.
Modeling a logical database schema �
To model a schema
INTERACTION DIAGRAMS
Interaction diagrams are not only important for modeling the dynamic aspects of a system, but also for constructing executable systems through forward and reverse engineering.
SEQUENCE DIAGRAM
COLLABORATION DIAGRAM
Interaction diagrams can be used −
Common modelling Techniques of Interaction diagram
Modeling flow control by Time ordering
Eg. Modeling Flows of Control by Time Ordering
Modeling Flows of control by organization
because they represent structural connections.
Modeling Flows of control by organization
Use Case Diagrams
and actors and their relationships.
A use case diagram is just a special kind of diagram and shares the same common properties as do all other diagrams,What distinguishes a use case diagram from all other kinds of diagrams is its particular content.
Contents
Common Modeling Techniques
Modeling the Context of a System�contd..
Modeling the Requirements of a System
To model the requirements of a system,
that surround it.
case diagram.
Modeling the Requirements of a System
Component Diagrams
Common uses
Common Modeling Techniques
Modeling Source Code
Modeling Source Code�contd….
model executable releases
Modeling an Executable Release
Modeling an Executable Release�contd….
Modeling a Physical Database
Modeling a Physical Database contd…
Modeling Adaptable Systems
Modeling Adaptable Systems contd…
UNIT – IV
Testing Strategies
(a) Unit Testing
(b) Integration Testing
(c) Validation testing
(d) System Testing
Metrics for Process and Products
Strategic approach to Software Testing
Strategic approach to Software Testing
Generic characteristics of strategic software testing:
(1) Verification and Validation
(2) Organising for Software testing
(3) Software Testing Strategy for conventional software architecture
Test Strategy for Conventional Software: � �
(4) Software Testing Steps:
(1) Unit Testing
Unit Test Considerations
* The test that occurs as part of unit tests are shown below
(1)Interface:
* It is tested to ensure that;
=> Information properly flows into and out of the program unit under test
(2)Local Data structures:
(3) Independent Paths:
(4)Boundary Conditions:
* These are tested to ensure that the module operates properly at boundaries established to limit (Or) restrict processing
Errors are commonly found during unit testing
Unit Test Procedures
Unit Test Environment
Driver:
=> Test Cases data
=> Passes these data to the component [to be tested]
Stub (Or) Dummy Programs:
It replaces modules that are called by the component to be tested
* Stub uses
=> the subordinate module’s interface
=> do minimal data manipulation
=> provides verification of entry
=> returns control to the module undergoing testing
(2) Integration testing
It is the mechanism of putting all the modules together , The problems that
occur during integrating are
=> Data can be lost across an integrating
=> One module can have an in advertent adverse affect on another
=> Sub functions, when combined may not produce the desired major
Function
=> Individually acceptable imprecision may be magnified to unacceptable
levels
=> Global data structures can present problems
(i) Depth First Search
(ii) Breadth First Search
(b) Bottom Up integration
(c) Regression Testing
(d) Smoke Testing
(a) Top-down Integration
Depth First integration
Breadth-first integration
(b) Bottom-up Integration
Bottom up integration
(c) Regression Testing
(d)Smoke Testing
Smoke testing approach activities
(3) Validation Testing
(a) Validation Test criteria
(b)Configuration Review
(c)Alpha testing
�
(d) Beta testing
(4) System Testing
(2) Security Testing: It verifies that protection mechanism built into a system will in fact protect it from improper penetration
Example:
Input data rates may be increased by an order of magnitude to determine how input functions will respond
THE ART OF DEBUGGING
Debugging Approaches or strategies
Brute Force:
Backtracking:
Cause elimination
White box testing
Black box testing
Graph-Based Testing Methods
Example
Object #1 = new file menu select
Object #2 = document window
Object #3 = document text
Referring to example figure, a menu select on new file generates a document window.
The link weight indicates that the window must be generated in less than 1.0 second.
The node weight of document window provides a list of the window attributes that are to be expected when the window is generated.
Equivalence Partitioning
EXAMPLES:
Boundary Value Analysis (BVA)
Orthogonal Array Testing
Example
Exhaustive testing requires 48(4 Mobile Phones * 4 Web Browsers * 3 OS) test cases.
Mobile Phones | Web browsers | OS |
Apple | Safari | iOS |
Samsung | Chrome | Android |
HTC | I.E | Windows mobile |
Nokia | Firefox |
|
SOFTWARE MEASUREMENT
Measurements in the physical world can be categorized in two ways:
Process metrics for Software Measurement [5m]
The process metrics for software measurement are calculated based on
Example : If a software organization maintains simple records, a table of size-oriented measures, such as the one shown in Figure can be created.
Referring to the table entry for project alpha,
Three people worked on the development of software for project alpha
.i.e. the size oriented metrics are calculated by
• Errors per KLOC (thousand lines of code)
• Defects per KLOC
• $ per KLOC
• Pages of documentation per KLOC
(a) Function Oriented Metrics:
FP = count total * [0.65 + 0.01 * ∑ (fi)]
Where count total is the sum of all FP entries
FP = Count Total * [0.65 + 0.01 * ∑ (Fi)]
Where,
Count Total => the sum of all FP entries obtained
∑Fi => 46 [a moderately complex product]
FP = 50 * [0.65 + (0.01 * 46) = 56
The fi [i =1 to 14] are value adjustment factors [VAF] based on responses to the following questions
(1) does the system require reliable backup and recovery?
(2) are specialized data communication required to )or) from the application
(3) are there distributed processing functions?
(4) is performance critical?
(5) will the system run in an existing heavily utilized operational environment
(6) does the system require on-line data entry?
(7) does the on-line data entry require the input transaction to be built over multiple screens (or) operations?
(8) are the ilf’s updated online?
(9) are the inputs, outputs, files (or) inquires complex?
(10)is the internal processing complex?
296
(11) is the code designed to be reusable?
(12) are conversion and installation included in the design?
(13) is the system designed for multiple installations in different organization?
(14) is the application designed to facilitate change and for ease of use by the user?
Each question is answered using a scale ranges from 0 [not important (or) applicable] to 5 [absolutely essential]
�
(c)Restore LOC and FP metrics:
The relationship between lines of code and function points depends upon the programming language that is used to implement the software and the quality of the design.
The following table provides rough estimates of the average number of lines of code required to build one function point in various programming languages:
A review of these data indicates that one LOC of C++ provides approximately 2.4 times the “functionality” (on average) as one LOC of C. Furthermore, one LOC of Smalltalk provides at least four times the functionality of an LOC for a conventional programming language such as Ada, COBOL, or C. we have to restore the LOC to work properly.
(d)Object Oriented Metrics
Conventional software project metrics (LOC or FP) can be used to estimate object oriented software projects. However, these metrics do not provide enough granularity Lorenz and Kidd suggest the following set of metrics for OO projects:
(e)Use case oriented metrics:
Metrics for Software Quality
(a)Measuring Defect removal Efficiency:
All the above product metrics are used to compute the defect removal efficiency (DRE) for a Good quality product. When considered for a project as a whole, DRE is defined in the following manner:
DRE = E /( E + D)
where E is the number of errors found before delivery of the software to the end
D is the number of defects found after delivery.
The ideal value for DRE is 1. That is, no defects are found in the software. Realistically,
(b)Measuring Quality
There are many measures for software quality. They are
Correctness. The most common measure for correctness is defects per KLOC, When considering the overall quality of a software product, defects are those problems reported by a user of the program after the program has been released for general use.
Maintainability.: There is no way to measure maintainability directly; therefore, you must use indirect measures. A simple indirect time-oriented metric is mean-time-to-change (MTTC),.The MTTC include the time it takes to analyze the change request, design an appropriate modification, implement the change,
Usability. If a program is not easy to use, it is often doomed to failure, even if the functions that it performs are valuable. Usability is an attempt to quantify ease of use and can be measured in terms of the characteristics
UNIT 5
Risk management
Reactive Vs proactive risk strategies
Software risks
Risk identification
Risk Projection
Risk Refinement,
RMMM,
RMMM plan
Quality Management
Quality concepts
Software quality assurance
Software reviews
Formal technical reviews
Statistical software quality assurance
Software reliability
ISO 9000 quality standards.
Definition of Risk
305
Uncertainty – the risk may or may not happen, that is, there are no 100% risks
Loss – the risk becomes a reality and unwanted consequences or losses occur
–
–
–
Risk Categorization – Approach #1
306
•
Project risks
–
–
They threaten the project plan
If they become real, it is likely that the project schedule will slip and that costs will increase
•
Technical risks
–
–
They threaten the quality of the software to be produced If they become real, implementation may become difficult or impossible
•
Business risks
–
–
They threaten the viability of the software to be built
If they become real, they jeopardize the project or the product
Risk Categorization – Approach #1 (continued)
307
•
Sub-categories of Business risks
–
–
–
–
– Market risk – building an excellent product or system that no one really wants
Strategic risk – building a product that no longer fits into the overall business strategy for the company
Sales risk – building a product that the sales force doesn't understand how to sell
Management risk – losing the support of senior management due to a change in focus or a change in people
Budget risk – losing budgetary or personnel commitment
Risk Categorization – Approach #2
308
Reactive vs. Proactive Risk Strategies
309
•
Reactive risk strategies
–
–
–
"Don't worry, I'll think of something"
The majority of software teams and managers rely on this approach Nothing is done about risks until something goes wrong
•
Proactive risk strategies
–
–
Steps for risk management are followed (see next slide)
Primary objective is to avoid risk and to have a contingency plan in place to handle unavoidable risks in a controlled and effective manner
Steps for Risk Management
310
- Impact may be negligible, marginal, critical, and catastrophic
Risk Identification
Background
312
•
•
•
•
Risk identification is a systematic attempt to specify threats to the project plan
By identifying known and predictable risks, the project manager takes a first step toward avoiding them when possible and controlling them when necessary
Generic risks
– Risks that are a potential threat to every software project
Product-specific risks
– Risks that can be identified only by those a with a clear understanding of the technology, the people, and the environment that is specific to the software that is to be built.
–
–
Known and Predictable Risk Categories
313
•
•
•
•
•
•
•
Product size – risks associated with overall size of the software to be built
Business impact – risks associated with constraints imposed by management or the marketplace
Customer characteristics – risks associated with sophistication of the customer and the developer's ability to communicate with the customer in a timely manner
Process definition – risks associated with the degree to which the software process has been defined and is followed
Development environment – risks associated with availability and quality of the tools to be used to build the project
Technology to be built – risks associated with complexity of the system to be built and the "newness" of the technology in the system
Staff size and experience – risks associated with overall technical and project experience of the software engineers who will do the work
13
Assessing Overall Project Risks
Questionnaire on Project Risk
(Questions are ordered by their relative importance to project success)
Questionnaire on Project Risk (continued)
315
Risk Components and Drivers:
316
•
The project manager identifies the risk drivers that affect the following risk components
–
–
–
– Performance risk - the degree of uncertainty that the product will meet its requirements and be fit for its intended use
Cost risk - the degree of uncertainty that the project budget will be maintained
Support risk - the degree of uncertainty that the resultant software will be easy to correct, adapt, and enhance
Schedule risk - the degree of uncertainty that the project schedule will be maintained and that the product will be delivered on time
•
•
The impact of each risk driver on the risk component is divided into one of four impact levels
– Negligible, marginal, critical, and catastrophic
Risk drivers can be assessed as impossible, improbable, probable, and frequent
Risk Projection (Estimation)
Risk projection, also called risk estimation, attempts to rate each risk in two ways—
(1) the likelihood or probability that the risk is real and (2) the consequences of the
problems associated with the risk, should it occur. You work along with other managers
and technical staff to perform four risk projection steps:
1. Establish a scale that reflects the perceived likelihood of a risk.
2. Delineate the consequences of the risk.
3. Estimate the impact of the risk on the project and the product.
4. Assess the overall accuracy of the risk projection so that there will be no
misunderstandings.
Background
319
Risk projection (or estimation) attempts to rate each risk in two ways
- The probability that the risk is real
- The consequence of the problems associated with the risk, should it occur
The project planner, managers, and technical staff perform four risk projection steps :
(a)Developing a Risk Table
•
•
A risk table provides you with a simple technique for risk projection.2 A sample risk table is illustrated in Figure 28.2.
It consists of five columns
–
–
–
–
–
Risk Summary – short description of the risk
Risk Category – one of seven risk categories (slide 12) Probability – estimation of risk occurrence based on group input Impact – (1) catastrophic (2) critical (3) marginal (4) negligible
RMMM – Pointer to a paragraph in the Risk Mitigation, Monitoring, and Management Plan
322
(b) Assessing Risk Impact
323
–
–
Example
P = 80% probability that 18 of 60 software components will have to be developed C = Total cost of developing 18 components is $25,000
RE = .80 x $25,000 = $20,000
Returning once more to the risk analysis approach proposed by the U.S. Air Force
you can apply the following steps to determine the overall consequences of a risk: (1) determine the average probability of occurrence value for each risk component; (2) using the risk table Figure, determine the impact for each component based on the criteria shown, and
(3) complete the risk table and analyze the results as described in the preceding sections.
P = the probability of occurrence for a risk
C = the cost to the project should the risk actually occur
RISK REFINEMENT
RISK REFINEMENT
During early stages of project planning, a risk may be stated quite generally.
As time passes and more is learned about the project and the risk, it may be possible to refine the risk into a set of more detailed risks, each somewhat easier to mitigate, monitor, and manage.
One way to do this is to represent the risk in condition-transition-consequence
(CTC) format [Glu94]. That is, the risk is stated in the following form:
Given that <condition> then there is concern that (possibly) <consequence>
This general condition can be refined in the following manner:
Subcondition 1. Certain reusable components were developed by a third party with no knowledge of internal design standards.
Subcondition 2. The design standard for component interfaces has not been solidified
and may not conform to certain existing reusable components.
Subcondition 3. Certain reusable components have been implemented in a language
that is not supported on the target environment.
The consequences associated with these refined subconditions remain the same
(i.e., 30 percent of software components must be custom engineered), but the
refinement helps to isolate the underlying risks and might lead to easier analysis and
response.
Risk Mitigation ,Monitoring, and �Management
Background
23
•
An effective strategy for dealing with risk must consider three issues
(Note: these are not mutually exclusive)
Risk mitigation (i.e., avoidance) Risk monitoring
Risk management and contingency planning
Risk mitigation (avoidance) is the primary strategy and is achieved through a plan .Example: Risk of high staff turnover (see next slide)
328
Risk Monitoring : During risk monitoring, the project manager monitors factors that may provide an indication of whether a risk is becoming more or less likely.
Risk management and contingency planning : That mitigation efforts have failed and that the risk has become a reality
For Example:
QUALITY MANAGEMENT
1
The solution
Quality Management
What is Quality Management?
A management process to develop and manage the quality of a software to make sure that the product satisfies the user.
It has four main components:
5
Components of Quality Management
Quality
Planning
Requirements must be identified, a criteria needs to be set, and important procedure must be recognized as a part of the plan.
Quality Control
To review the quality of the product or service. Inspection and testing is necessary to identify problems and defects that need correction.
Through quality improvement, the results can be measured and possible improvements in products can be made.
Quality Assurance
Quality Improvement
8
Companies need to assure defects and mistakes are avoided in the manufacturing of good and quality assurance guarantees consistent results.
Software Quality
Software Quality Management System
A quality management system is the principal methods used by organizations to provide that the products they develop have the desired quality. The quality system activities encompass the following:
SQA Software Quality Assurance
to ensure high quality in software
SQA Tasks
- The SQA group identifies, documents, and tracks deviations from the process
and verifies that corrections have been made.
- The SQA group reviews selected work products; identifies, documents, and tracks deviations; verifies that corrections have been made; and periodically reports the results of its work to the project manager.
- Deviations may be encountered in the project plan, process description,
applicable standards, or software engineering work products.
- Noncompliance items are tracked until they are resolved.
Software Review
Varieties of Software Reviews
12
Software peer reviews are conducted by the author of the work product, or by one or more colleagues of the author, to evaluate the technical content and/or quality of the work
Software management reviews are conducted by management representatives to evaluate the status of work done and to make decisions regarding activities.
Software Audit Review is a type of external review in which one or more critics, who are not a part of the development team, organize an independent inspection of the software product and its processes to assess their compliance with stated specifications and standards. This is done by managerial level people.
* It is performed by software engineers
Objectives:
8
Formal Technical Review
(a) The Review Meeting:
* The review meeting should abide by the following constraints
=> The duration of the review meeting should be less than two hours
Review Report:
(ii) To serve as an action item check list that guides the producer as corrections made and issues list normally attached to the summary report
Review Guidelines:
Statistical Software Quality Assurance
underlying cause
caused the defects
Statistical SQA – Categories of Errors
• Incomplete or erroneous specifications (IES)
• Misinterpretation of customer communication (MCC)
• Violation of programming standards (VPS)
• Error in data representation (EDR)
• Inconsistent component interface (ICI)
• Error in design logic (EDL)
• Incomplete or erroneous testing (IET)
• Inaccurate or incomplete documentation (IID)
• Error in programming language translation of design (PLT)
• Ambiguous or inconsistent human/computer interface (HCI)
• Miscellaneous (MIS)
All the above Errors are noted in the form Table for every project and solve those defects for the next project
Statistical SQA – Six Sigma
Most widely used strategy for statistical SQA Three core steps
If an existing software process is in place, but
improvement is required, six sigma suggests
of defects
Statistical SQA – Six Sigma (cont...)
defects and meet customer requirements
It is defined in statistical terms as “the probability of failure-free operation of a computer program in a specified environment for a specified time”
Whenever software reliability is discussed, a pivotal question arises:
What is meant by the term failure?
In the context of any discussion of software quality and reliability, failure is nonconformance to software requirements. One failure can be corrected within seconds, while another requires weeks or even months to correct.
Correcctions(measures) of Reliability and Availability:
Most hardware-related reliability models are predicated on failure due to wear rather than failure due to design defects. In hardware, failures due to physical wear (e.g., the effects of temperature, corrosion, shock) are more likely than a design-related failure. Unfortunately, the opposite is true for software. In fact, all software failures can be traced to design or implementation problems;
SOFTWARE RELIABILITY
* If we consider a computer – based system a simple measure of reliability is Mean – Time – Between – Failure [MTBF]
MTBF = MTTF + MTTR
MTTF => Mean Time To Failure
MTTR => Mean Time To Repair
Availability = MTTF / (MTTF + MTTR)] * 100%
ISO 9000 Standards
ISO 9000 Quality Standards
ISO 9001:2000 Quality Standards��* It is the quality assurance standard defined as the organizational structures, procedures to implement quality.�* The standard contains 20 requirements�* The requirement delineated by ISO 9001:2000 address topics such as�=> Management responsibility�=> Quality Systems�=> Contract reviews�=> Design Control�=> Document and Data control�=> Product Identification�=> Corrective and Preventive action�=> Control of quality records etc..