The same can be obtained on demand as a .doc format document through my email amitkadam07@gmail.com which has precise and clear diagrams n images for ready reference.
Thanks!
Amit.
SEPM(SOFTWARE ENGINEERING & PROJECT MANAGEMENT)
It is the systematic, disciplined, quantifiable approach to the “DEVELOPMENT,OPERATION and MAINTENANCE” of a software.
Life cycle of SEP:-
STAGES
DOCUMENTATION
1
Opportunity Study
Opportunity Study Report
2
Problem formulation
Requirement Specification
Requirement analysis
User Reference Manual
System Impact
Understandibility,usability
System Test Plan
3
Product Realisation Design
Preliminary (For adopting change)
Module decomposition
Module dependencies,integration, test plan
Detailed (Crucial for performance)
Module specifications,module impelementation plan,test plan.
Implementation
1)Coding
2)unit testing i.e Code walkthrough report.
Testing
Integration,
Alpha test.
4
Delivery
1)Beta test.
2)Acceptance test.
3)Installation.
5
Evolution
Release Notices,Problem Reports
6)
Retirement
For any project the 1st 3 stages are important.Evolution means continous updation & it is not important in trivial ,trifling,small & medium size project.
Opportunity study –not necessary for trivial & small project.
Alpha Test – Testing the system, done for developer.
Beta Test – Testing the system,done for customer.
1.)Opportunity/feasibility study
Organization recognizes problem to be solved.
Before project begins -> survey is conducted through market /consumers.
Time frame (?) – costs(?)
Customer may approach (customer must know who is developer/organisation).
Informal Study(i.e. General information, preliminary discussion )
Explore possibilities of solution, Benefits.
Documentation: a) Broad depth of problem.
b)Develop criteria for choosing solution.
c)Identifying probable solution.
d)Recommendation of course of action/Resources.
e)What output?
f)Share plans or continue project.
2). Problem’s formulation:
a) Requirement analysis
-What system must/can do?
- What products must meet requirements?
b) Project Planning :-
How to plan for developing system?
How organization will develop product?
Prepare several planning related documents,software configuration management,plan,modules,budgets,training plan(for new staff),security plan(secrets restricted acceribility,bonds,agreements.)
Employee may need security classification.
Physical security requirements-locked room,safe for documents,restricted areas,Employee budgets.
c) Product realization : Design is technical planning action.
Decides overall structure of system.
How industrial components will do jobs?
Testing puts components together(Integration).
Ensuring overall system meets requirements(Alpha test).
d) Delivery & Beyond : - Transport places to customer.
Provide user documentation.
For wide market do preliminary testing(b-test before product is ready for market place).
Acceptance test(customer may satisfy before purchase).
e) Evolution :- In use customer may find problem.
Ask for new features.
Upgradation, evolution, maintenance, enhancement. Many years later ->Obsolete product for retirement.
Users,Developers need to plan for retirement.
10/09/99
Software Market -> consumers;products(tangible)/service(P&T,DD/Banking,Insurance,Railway,Hotel& Tourism software.
Problems-Delivery model.
It is simple to market the product but difficult to market the service.
Types of Market for Software.
1) A single customer market.
Small,medium or large projects which are made for single customer(organization),tailor-made,more personal interactions is not marketed in general market.
2) A small market.
One or two customers(prime),however developer may be able to develop the market into a bigger size by marketing suitably to cater to a large market.This can be done by changing,adding,modifying the original product to suit the requirements of the customers.
3) Mass Market (Domestic or International)
Many customers,many users,general purpose use not specific to specific requirements of customers,product is manufactured by the developer,not by interacting with the customers but by understanding the general requirements of large number of customers which can be generalized into all purpose software.
For eg.Different pacakages like Tally, Office 2k etc., which are general purpose & requires no updation,maintained once it is sold.(Unlike maintenance being given more importance in single customer market.)
The system architects may have no typical customer to interact.
Many computer software specialists are required.
Developer does not install system at sight but markets the software in terms of CD’s or disks.
Most of the products are packages which customers can install by themselves. For such markets various marketing strategies are required to market the product like advertising, counseling ,free demo,trial testing etc.
This market has tremendous potential with the advent of internet.
29/09/99
SOFTWARE ANALYSIS:
Requirement Analysis:
Customer doesn’t care
Customer cares
Observable to user
Requirement likely to change.
Measurable Requirements
Unmeasurable Goal
Not observable to users.
Implementation details.
Constraints (Limitations).
Preliminary Analysis
Interaction of customer & Developer.
Good communication skills.
What system does see from customers point of view.
Problems Analysis
Three(3) types of persons are there in customer organization.
1) Initiator(Manager)
2) End User(Operator)
3) End Line User(lower level).
Customer cares if he has knowledge about the thing concerned.
Observable can be measured.
Goals are not measurable.
Requirement likely to change:- User observes but does not care.
Implementation details -> Developer cares at this phase,customer does not care at this stage .Implementation details should not be given to customer but can be used by developer for his purpose.
Constraints -> Customer cares.They must be specified in user document.
Production is line organization.
30/09/99
Requirement considerations.
System environment.
Boundary(Physical/conceptual)
Problem within & outside sys.(compatibility).
People who interact with system.(Background/viewpoint).
Quality-> To provide high quality -> High cost.
Hardware limits.(*Any h/w has its own limits*)
Disk space,computer memory.
Need for new system in Limited time or limited budget.
Why this(New) System?
1)Automate existing manual system or to improve computer system.
2) Manage large information.
3) To do task which can be only done by computer eg.CAD/CAM.
4)Low cost & Low manpower.
1/10/99
Software Qualities
1) Human factors- Programmer skills,strength, weaknesses of users, Adaptibility of system to existing(manual/computer) system.
-Ease of use-Challenging and not boring.
-Information availability – (Resistance to change) At lease 2 types of information at a time.
- Response Time{ Low=Annoying}
{Quick=Rattled(Confused)}
- Response to users errors.
2) Reliability -> Trust,correctness.
-> Availibility – Time Fraction,Failure frequency & Recovery time. -> Robustness – Ability of system to recover from undesired events
without human intervention.
è Safety(4 dimensions-3 pertaining to customers,1 pertaining to developer).Ability of system to avoid catastrophic behaviour.
è Security -> Safety of data ,temp. control,unathorised person’s entry.
è Accuracy -> How close to correct answer?
2) Maintainability – How its easy to change?
- portability – moving system to new H/W O.S
- Adaptability –Ease of changing program.
Developing a Model/System Design.
1) Objects – e.g Data ,physical devices (sensors,indicators,displays),Agents(Persons)
2) Conditions /Predicates –Functions(True/False) Events(Change in value of predicates)
3) Relationships – Among objects & Events.
- Actions of agents.
- Events that agents change.
4) Scenario of how typical user wants to interact with new system. What user wants to do?
-Hypothetical set of assumptions, actions & responses.
ISO STANDARDS FOR QUALITY MANAGEMENT –
ISO is situated in Geneva,Switzerland.
ISO STANDARDS
CATEGORY
TITLE
9000
GUIDELINES
Quality Management & Quality Assurance Standards: Guidelines for selection and use.
9001
MODEL
Quality assurance in Design,Development,Production,Installation & Servicing.
9002
MODEL
Quality assurance in Production & Installation.
9003
MODEL
Quality assurance in final inspection & testing.
9004
GUIDELINES
Quality Management & Quality system elections:Guidelines.
Reasons why Quality may not succeed in India.
Quality looks Inwards.
Quality is minimum.
Quality is bureaucracy.
Quality is delegated to “EXPERTS” rather than “REAL” people.
Quality is synonymous with competitiveness.
Quality does not demand radical and Organizational report.
For ISO standard for any organization ,it is necessary to have(must) TQM.
Route to ISO 9000 REGISTRATION.
Evaluation of Business & Competative needs.
Decision of Proper ISO STANDARDS
MANAGEMENT commitment
Resource Allocation
Outside Consultant
Set up teams, sub-teams,Tasks,Goals,Timing.
Leader & Staff Training
Review of Current Procedures.
Quality Action Plan
Quality Manual & Other Procedural Manuals
Pre-Assessment
Internal Audits
Improvements
Audit
Registration
TESTING
BLACK BOX TESTING
1)Incorrect or missing function.
2)Interface error.
3)Errors in data structures/external database access.
4)Performance errors.
5)Initialisation and termination errors.
Graph-based Testing Methods:
DirectedLink To understand object of the software & test the relationships that connect the object.The steps in it are:
1) Object :->
Object #1
Object#2
Object#3
Undirected Link
Parallel Link
Node Weight
Weight Link
2) To define the connection between object /node.
3)To create a group of important objects & there relationship & prepare the collection node of there objects.
Beizer has given 4 different modules for BBT which are:-
i))Transaction Flow Modelling:- The nodes represents steps & links represents logical connection between steps.
For eg.Flight information input. Validation /availability.
DFD helps in designing Transaction flow Modelling.
ii)Finite State Modelling:- The node represents different observable steps& links represents the nature of transaction. A technique is applied to design/represent product variation from one node to another i.e State-Transition diagram.
Eg.:order information – inventory availability lookup.
Customers billing information input.
25/08/99
Equivalence Partioning(EP).
It is black box testing method.It divide I/P domain into no. of classes.Classes data can be derived from E.P & ideal test can be derived from uncovered errors.In this test,
1) Specifies the range-Here the range is specified by the defined classes.
2) If an I/P condition requires specific value & then check these values,are valid/invalid etc. eg. Sex M/F.
3) Specifies the member of a set.
4) If an I/P condition specifies Boolean condition then check values for define class. E.g age <18>l.b b<->u.b check within the boumdary values of a & b.Test cases should be developed to exercise min. or max. values of the boundary.
The entered value must be max. or min.
The two conditions must applied to output condition to get the result.
If internal program data structures have designed boundaries.
*Comparison Testing.
Situation where releiability of software is critical.So for accuracy deficiency , in such cases redundant H/W & S/W are used. So we use existing systems for comparison testing.To compare the existing system with the newly designed system.
*Testing of Real-Time System.
It is complicated testing where I/P data is tested quickly & within specific time limit.e.g airline reservation online systems.In testingReal time system four-step strategies are applied.
1)Task testing->Test each task independently which covers uncovered errors like logical & functional errors.
2) Behavioural testing- It is with the help of case tools & it is to simulate the behavior of real system & examine the factors of system with external events.e.g railway reservation system.
3)Inter task testing ->Once error in individual task is isolated next task is formulated & synchronization errors are isolated & removed,inter task relatational error.
4)System testing:-> S/W & H/W are integrated & tested,interfacing errors & overall system.
Tools available for testing software (Automated testing tools)
Miller described number of different categories of software testing tools:-
1)Static Analyzers- It is program analysis testing tool.
2)Code auditors:-It is used to check quality of software,to unsure that it meets minimum software requirements.
3)Assertion processors:-These are used to tell whether the programmer claims for assertion & for checking this claim p’s are used.It test programme behaviour or actually meet the claim during real programme(sys.) execution.
4) Test file generators.
5)Test Data generators.
6)Test Verifiers.
7)Output comparators.
DUNN added 3 testing tools namely:
1) Symbolic Execution system.
2) Environment Simulators.
3) Data flow analyzers.
Validation Testing:
Criteria : - a) Function/R.
b) Derivation.
Configuration review:->End user takes review of configuration.
Alpha test -> Conducted by end user on developer side.
Beta test-> Conducted by end user on user/customer side.(It is live application).
System Testing:->
1)Design error handling path.
2)Conducted a series of Tests.
3)Record all results of test used as evidence.
4)Participate in the planning & design of system test.
Beizer methods of black box testing.
1) Transaction flow modelling.
2) Finite state modelling.
State transition diagram-This technique is used to nodes variation.
Software testing strategies :
1) Prepare the test planning-How to test the software?(What are resources required etc.)
2) Test case design.
3) Test execution:-To execute test & observe the performance of test.
4) Resultant data collection and evaluation.
Characteristics of Software testing :-
1) Testing begins at module level & works towards the integration of entire software.
2) Different testing techniques are appropriate at different point in time.
3) Testing is conducted by developer on the software & an independent test groups.
4) Testing and debugging are different activities and debugging must be accommodated in any testing strategy.
V & V Test(Verification & Validation test):-
Verification:
Set of activities that ensures that software ensures correctly predefined functions.
Validation: Set of activity that ensures software is traceable to customer requirement.
*
Software Engg. Methods
Formal Technical review
Standards & Procedures
SCM & SQA
Testing
Measurement
Quality
Testing strategy :- (This is procedural oriented testing of software).
E
S
R
VSoftware Engineers
D
I
Requirement
C/U Design
Unit test or modular test.
Integration test.
Code Validation test.
System test.
Issues
1) Specify the product requirements in quantitative manner.
2) State testing objectives.
- Test effectiveness, cost to find fixed defects, density, frequency occurrences. These are main objects of testing.
3) Understand the user of the software & develop a profile for each user.
4) Develop the testing plan that emphasizes the “rapid cycle testing.”
5) Built software i.e designed to test itself.
6) Use effective formal technical reviews as a filter, prior to testing.
7) Conduct the formal technical review to assess the test strategies.
8) Develop continuous improvement approach for the testing process.
Unit testing:-
Test the smaller unit of software or modules.
Module
Interface
Local data structure
Boundary testing
Independent path testing
Error handling path.
Mayers Interface checklist:-
1) Number of arguments equal to number of parameters.
2) Parameters & arguments should be matched.
3) Parameters & arguments should be system matched.
4) Number of arguments transferred to call module equal to number of parameters.
5) Attributes of arguments transmitted to call module & attribute applied in sub-function should be matched.
6) Number of attributes & order of arguments built in function should be correct.
7) It’s possible to change only input parameters.
8) Global variable definition should be consistent.
Distributed database is a collection of data spread over different computer sites of a computer network. Each site of a network has autonomous processing capability and can perform a local application. Each site also participates in the execution of global application which requires access of data at several sites using s communication subsystem.
14/10/99
Problem 1 -> A model usually presents us with too many things simultaneously.
Modeling with reference to software engineering project management tries to solve & help in developing a product which can gave a solution to the customers problem.In actual life there are large number of complexities due to their interactions ,uncertainty in future.Hence the following problems crops up in modeling.
Problem 1-> As above.
. . . . .
.
.
. .
Objects 2 3 4 n (n-1)/2
Interactions 1 3 6
Hence it is necessary to model a large set of realities in the process of development into a system by analysis, design, coding, integration & testing as shown below:
Reality
SWS.
Large Development of SEP Analysis.
Set
Of
objects Design,coding/Integration testing
The above process fails to formulate in detail requirement analysis & requirement specification document.
How-so-ever perfect the requirement analysis be there will be always changes,hence no requirement analysis is ever perfect.As the system is been developed right from the modeling stage to product formulation.The perception of the customer changes at every point of time than what it was originally.
Hence,a small change suggested by customer may result into large number of changes in software development.
Problem 3 -> Communication gap between customer & developer is wide.
Solution 1
Reality to take large details. Difficult to organize complexity
Reduce details to few simultaneously.
…,/.,,;
/..,/.:’.,,
…,/.,,;
/..,/.:’.,,
…,/.,,;
/..,/.:’.,,
,/.,,;
/..,/.:’.,,
…,/.,,;
/..,/.:’.,,
…,/.,,;
/..,/.:’.,,
Hiding details
In hiding detlails the software engineer comprehends details into subsets. Subsequently every subset is studied in detail.This process is called as “Abstraction”.
Comprehension is inversely proportional to number of things.(C < 1/N) For eg.:- A family doctor with past history can diagnose fast by ignoring the details since he was aware about the patients details. Whereas a new doctor will carry out full investigation. Abstracting of a model 1) To separate mentally things/objects/elements into different classes based on similarity. 2) To consider all things relevant or irrelevant in the system development. 3) To summarise understanding & interaction between the elements of system. 4) To extract essentials of several items or things.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment