want to contact me login to www.stqa.org
Upcoming SlideShare
Loading in...5
×
 

want to contact me login to www.stqa.org

on

  • 834 views

 

Statistics

Views

Total Views
834
Views on SlideShare
834
Embed Views
0

Actions

Likes
0
Downloads
10
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

want to contact me login to www.stqa.org want to contact me login to www.stqa.org Presentation Transcript

  • SOFTWARE ENGINEERING
    • Objectives
    • Have a basic understanding of the origins of Software development, in particular the problems faced in the Software Crisis
    • Knowledge of the concepts of Software Engineering
    • Definition of Software Engineering, and the desired Software Characteristics
    • The paradigms. For each paradigm, know the associated diagram, description of the steps involved in it
    • Ability to read a given scenario and recommend with justification the paradigm for it
    • Ability to identify the continually changing nature of software development
  • The emergence of software engineering The early years (50-60) Second Era (60-Mid70s) Third Era (70-mid80) Fourth Era (80's and beyond) Batch orientation The system handles the job at once in sequence Multiprogramming and Multi - User Systems. Personal Computers came to be widely used. Increased use of desktop systems Limited Distribution Computers were not widely used. Software become distributed - this was the start of the software crisis. Micro Computers also were used in other products   Object Oriented Technologies They were highly customized - they were produced only to meet specific needs.   Therefore there was a greater need for software Expert System AI Parallel Computing Software Crisis
  • The emergence of software engineering
    • The task description and the requirements frequently change even during the program design phase, and continue to change even after the software system has long since been in use.
  • The major problems
    • Correctness
    • Efficiency
    • Mastery of Complexity
    • Interface specification
    • Reliability    
    • Flexibility
    • Documentation
    • Maintainability
    • Project organization.
  • DEFINITION OF SOFTWARE
    • Instructions (computer programs) on execution provide desired function and performance
    •   Data structures that enable programs to adequately manipulate information
    •   Documents that describes the operation and use of the programs
  • Software and Hardware
    • When hardware is built the human creative process (Analysis, Design, Construction, testing) is ultimately transferred into a physical form
    •   Software is logical rather than physical system element.
    • Software is engineered (or developed) – it is not manufactured.
    • Software does not wear out.
  • Software Applications.
    • Software may be applied in any situation for which a set of procedural – steps (algorithm) has been defined.
    • Information content and determinacy are important factions in determining the nature of software application.
    • Content refers to the meaning and form of incoming and outgoing information.
    • Information determinacy refers to the predictability of the order of timing of information.
  • Software Engineering paradigms.
    • Software Engineering is the technological, managerial discipline concerned with systematic production and maintenance of software products that are developed and modified one time.
    • The primary goals of software engineering are to improve the quality of software products and to increase the productivity and job satisfaction of persons involved.
    • Software Engineering being labor-intensive activity, requires both technical and managerial control.
  • Software Engineering paradigms.
    • In very real sense , the software engineer creates models of physical situation in software. The mapping between model and reality being modeled – has been called intellectual distance between problem and computerized solution. The fundamental principle of software engineering is to design software products that minimize the intellectual distance between problem and solution.
  • Software Engineering paradigms
    • Software engineering is layered technology – An approach that must rest on organizational commitment to quality.
    • The layers are
        • Tools
        • Methods
        • Process
        • A quality focus
    • The bedrock that supports software engineering is a quality focus.
    • The foundation for Software Engineering is the process layer.
    • Software Engineering methods provides the technical know how-to for building software.
    • Software Engineering Tools provide automated or semi automated support for the – process and methods.  
  • Generic Phases
    • 1.     Formal technical reviews
    • 2.     Software QA
    • 3.     Software Configuration Management.
    • 4.     Document preparation & production
    • 5.     Reusability management
    • 6.     Measurement
    • 7.     Risk Management.
  • Software Development Life Cycle
    • Classic life cycle suggests a systematic , sequential approach that begins at system level and progresses through
        • Analysis
        • Design
        • Verification and Validation
        • Support.
  • Software Development Life Cycle
    • Specification Phase
    • Object-Oriented Analysis Phase
    • Design Phase
    • Implementation Phase
    • Implementation and Integration Phase
    • Maintenance Phase
  • Software requirement Analysis
    • Focused specially on software
    • Analyst must understand the information domain to understand the nature of programs to be developed.
    • The requirements for system and software are to be documented and reviewed by the customer.
  • Software Design
    • Software Design is a multi step process focuses on four distinct attributes of a program.
        • Data Structure
        • Software architecture
        • Interface representation
        • Procedural logic
  • Code Generation
    • Design is translated into machine readable form.
    • Can be automated
  • Testing
    • Code Testing
    • Specification testing
    • Uncovers errors
  • Support
    • Software may undergo change after delivery due to errors.
    • Software must be adaptable to new environment
    • Due to functional or performance enhance suggested by customer
  • Project size categories
    • Based on level of management control and types of tools and techniques
  • Trivial project
    • One programmer working, sometimes part time for few days, for exclusive use.
    •   Less than 500 statements & 10 - 20 sub routines. 
    • Eg. PC Software, a little need for analysis documentation
    • No Extensive test planning essential. 
  • Small Projects
      • 1 - 6 months effort of 1 programmer.
      • 1000 - 2000 lines of code.25 - 50 sub routines
      • Less interaction between programmers
      • Scientific calculations for engineering on small
      • Commercial applications
      • Little interaction between customers and developers.
  • Medium Size Projects
    • 2 - 5 Programmer’s team.
    • 1- 2 years
    • 10,000 – 50,000 lines
    • 250 - 1000 routines
    • medium project size
  • Large Projects
    • 5 - 20 programmer’s team
    • 2 - 3 years duration
    • 50,000 to 1,00,000 lines of code
    • Package in several system
    • Eg. Large compilers
  • Very large Projects
    • 100 - 1000 programmers
    • 4 - 5 years
    • 1 million source instructions
    • Consists of several major sub systems
    • 0S/360 – 5000 programmers worked for 5 years
  • Extremely large projects
    • 2000 - 5000 Programmers
    • duration up to 10 years
    • 100 million lines of code
    • Often distributed processing, Multitasking
    • Requires high reliability
    • Eg. Telecomm ,defense, air traffic control
  • Problems in Software Engineering
    • Potential business problems or occurrences that may cause the project
    • Potential project problems or occurrences that may cause the project
    • Technical problems or occurrences that may cause the project
    • Conform to changes in its external environment analysis
  • Software Productivity factors
    • Individual ability
    • Team communication
    • Product complexity
    • Appropriate notations
    • Systematic approaches
    • Change control
    • Level of technology
    • Required reliability
  • Software Productivity factors
    • Available time
    • Problem understanding
    • Stability of requirements
    • Facilities and resources
    • Management skills
    • Appropriate goals
    • Rising expectations
  • Project Structure
    • Project format.
    • Use of a project format involves assembling a team of programmers who conduct a project from start to finish; project team members do product definition, design the product, implement it, test it, conduct project reviews, and prepare the supporting documents.
  • Project Structure
    • Functional format.
    • In the functional approach to organization, a different team of programmers performs each phase of the project, and the work products pass from team to team as they evolve.
  • Project Structure
    • Matrix format.
    • In matrix organizations, each of the functions described above has its own management team and a group of specialist personnel who are concerned only with that function
  •