Introduction Software Engineering Basics
Software Crisis
• Software Crisis is a term used in computer science for the difficulty of
writing useful and efficient computer programs in the required time.
• The software crisis was due to using the same workforce, same
methods, same tools even though rapidly increasing in software
demand, the complexity of software, and software challenges.
Causes of Software Crisis:
• The cost of owning and maintaining software was as expensive as
developing the software
• At that time Projects were running over-time
• At that time Software was very inefficient
• The quality of the software was low quality
• Software often did not meet user requirements
• The average software project overshoots its schedule by half
• At that time Software was never delivered
• Non-optimal resource utilization.
• Difficult to alter, debug, and enhance.
• The software complexity is harder to change.
Factors are contributing to the software crisis
• Poor project management.
• Lack of adequate training in software engineering.
• Less skilled project members.
• Low productivity improvements.
Solution of Software Crisis
• Reduction in software over budget.
• The quality of software must be high.
• Less time is needed for a software project.
• Experienced and skilled people working over the software project.
• Software must be delivered.
• Software must meet user requirements.
What is Software Engineering?
• The term software engineering is the product of two words, software and engineering.
• The software is a collection of integrated programs.
• Engineering is the application of scientific and practical knowledge to invent, design, build,
maintain, and improve frameworks, processes, etc.
• Software Engineering is an engineering branch related to the evolution of software product using
well-defined scientific principles, techniques, and procedures. The result of software engineering is
an effective and reliable software product.
Why is Software Engineering required?
• To manage Large software
• For more Scalability
• Cost Management
• To manage the dynamic nature of software
• For better quality Management
Need of Software Engineering
• Huge Programming
• Adaptability
• Cost
• Dynamic Nature
• Quality Management
Characteristics of a good software engineer
• Exposure to systematic methods, i.e., familiarity with software engineering principles.
• Good technical knowledge of the project range (Domain knowledge).
• Good programming abilities.
• Good communication skills. These skills comprise of oral, written, and interpersonal skills.
• High motivation.
• Sound knowledge of fundamentals of computer science.
• Intelligence.
• Ability to work in a team
• Discipline, etc.
Importance of Software Engineering
The importance of Software engineering is as follows
• Reduces complexity
• To minimize software cost
• To decrease time
• Handling big projects
• Reliable software
• Effectiveness
Software Processes
• The term software specifies to the set of computer programs,
procedures and associated documents (Flowcharts, manuals, etc.)
that describe the program and how they are to be used.
• A software process is the set of activities and associated outcome
that produce a software product. Software engineers mostly carry out
these activities.
Software specifications
• The functionality of the software and constraints on its operation
must be defined.
Software development
• The software to meet the requirement must be produced.
Software validation
• The software must be validated to ensure that it does what the
customer wants.
Software evolution
• The software must evolve to meet changing client needs.
The Software Process Model
• A software process model is a specified definition of a software
process, which is presented from a particular perspective.
• Models, by their nature, are a simplification, so a software process
model is an abstraction of the actual process, which is being
described. Process models may contain activities, which are part of
the software process, software product, and the roles of people
involved in software engineering.
Types of software process models
• A workflow model
• A dataflow or activity model
• A role/action model
There are several various general models or paradigms of
software development
• The waterfall approach
• Evolutionary development
• Formal transformation
• System assembly from reusable components
Program vs. Software
Documentation
Operating Procedures
Software Development Life Cycle (SDLC)
• A software life cycle model (also termed process model) is a pictorial
and diagrammatic representation of the software life cycle.
• A life cycle model represents all the methods required to make a
software product transit through its life cycle stages.
Need of SDLC
• The development team must determine a suitable life cycle model for
a particular plan and then observe to it.
• When a team is developing a software product, there must be a clear
understanding among team representative about when and what to
do
SDLC Cycle
The stages of SDLC are as follows
• Stage1: Planning and requirement analysis
• The senior members of the team perform it with inputs from all the
stakeholders and domain experts or SMEs in the industry.
• Planning for the quality assurance requirements and identifications of
the risks associated with the projects is also done at this stage.
Stage2: Defining Requirements
• Once the requirement analysis is done, the next stage is to certainly
represent and document the software requirements and get them
accepted from the project stakeholders.
•
Stage3: Designing the Software
• The next phase is about to bring down all the knowledge of
requirements, analysis, and design of the software project. This phase
is the product of the last two, like inputs from the customer and
requirement gathering.
Stage4: Developing the project
• In this phase of SDLC, the actual development begins, and the
programming is built. The implementation of design begins
concerning writing code. Developers have to follow the coding
guidelines described by their management and programming tools
like compilers, interpreters, debuggers, etc. are used to develop and
implement the code.
Stage5: Testing
• After the code is generated, it is tested against the requirements to
make sure that the products are solving the needs addressed and
gathered during the requirements stage.
Stage6: Deployment
• Once the software is certified, and no bugs or errors are stated, then
it is deployed.
• Then based on the assessment, the software may be released as it is
or with suggested enhancement in the object segment.
Stage7: Maintenance
• Once when the client starts using the developed systems, then the
real issues come up and requirements to be solved from time to time.
SDLC Models
Thank You

Introduction Software Engineering Basics-Module(01).pptx

  • 1.
  • 2.
    Software Crisis • SoftwareCrisis is a term used in computer science for the difficulty of writing useful and efficient computer programs in the required time. • The software crisis was due to using the same workforce, same methods, same tools even though rapidly increasing in software demand, the complexity of software, and software challenges.
  • 4.
    Causes of SoftwareCrisis: • The cost of owning and maintaining software was as expensive as developing the software • At that time Projects were running over-time • At that time Software was very inefficient • The quality of the software was low quality • Software often did not meet user requirements • The average software project overshoots its schedule by half • At that time Software was never delivered • Non-optimal resource utilization. • Difficult to alter, debug, and enhance. • The software complexity is harder to change.
  • 5.
    Factors are contributingto the software crisis • Poor project management. • Lack of adequate training in software engineering. • Less skilled project members. • Low productivity improvements.
  • 6.
    Solution of SoftwareCrisis • Reduction in software over budget. • The quality of software must be high. • Less time is needed for a software project. • Experienced and skilled people working over the software project. • Software must be delivered. • Software must meet user requirements.
  • 7.
    What is SoftwareEngineering? • The term software engineering is the product of two words, software and engineering. • The software is a collection of integrated programs. • Engineering is the application of scientific and practical knowledge to invent, design, build, maintain, and improve frameworks, processes, etc. • Software Engineering is an engineering branch related to the evolution of software product using well-defined scientific principles, techniques, and procedures. The result of software engineering is an effective and reliable software product.
  • 9.
    Why is SoftwareEngineering required? • To manage Large software • For more Scalability • Cost Management • To manage the dynamic nature of software • For better quality Management
  • 10.
    Need of SoftwareEngineering • Huge Programming • Adaptability • Cost • Dynamic Nature • Quality Management
  • 11.
    Characteristics of agood software engineer • Exposure to systematic methods, i.e., familiarity with software engineering principles. • Good technical knowledge of the project range (Domain knowledge). • Good programming abilities. • Good communication skills. These skills comprise of oral, written, and interpersonal skills. • High motivation. • Sound knowledge of fundamentals of computer science. • Intelligence. • Ability to work in a team • Discipline, etc.
  • 12.
  • 13.
    The importance ofSoftware engineering is as follows • Reduces complexity • To minimize software cost • To decrease time • Handling big projects • Reliable software • Effectiveness
  • 14.
    Software Processes • Theterm software specifies to the set of computer programs, procedures and associated documents (Flowcharts, manuals, etc.) that describe the program and how they are to be used. • A software process is the set of activities and associated outcome that produce a software product. Software engineers mostly carry out these activities.
  • 15.
    Software specifications • Thefunctionality of the software and constraints on its operation must be defined.
  • 16.
    Software development • Thesoftware to meet the requirement must be produced.
  • 17.
    Software validation • Thesoftware must be validated to ensure that it does what the customer wants.
  • 18.
    Software evolution • Thesoftware must evolve to meet changing client needs.
  • 19.
    The Software ProcessModel • A software process model is a specified definition of a software process, which is presented from a particular perspective. • Models, by their nature, are a simplification, so a software process model is an abstraction of the actual process, which is being described. Process models may contain activities, which are part of the software process, software product, and the roles of people involved in software engineering.
  • 20.
    Types of softwareprocess models • A workflow model • A dataflow or activity model • A role/action model
  • 21.
    There are severalvarious general models or paradigms of software development • The waterfall approach • Evolutionary development • Formal transformation • System assembly from reusable components
  • 22.
  • 23.
  • 24.
  • 25.
    Software Development LifeCycle (SDLC) • A software life cycle model (also termed process model) is a pictorial and diagrammatic representation of the software life cycle. • A life cycle model represents all the methods required to make a software product transit through its life cycle stages.
  • 26.
    Need of SDLC •The development team must determine a suitable life cycle model for a particular plan and then observe to it. • When a team is developing a software product, there must be a clear understanding among team representative about when and what to do
  • 27.
  • 28.
    The stages ofSDLC are as follows • Stage1: Planning and requirement analysis • The senior members of the team perform it with inputs from all the stakeholders and domain experts or SMEs in the industry. • Planning for the quality assurance requirements and identifications of the risks associated with the projects is also done at this stage.
  • 29.
    Stage2: Defining Requirements •Once the requirement analysis is done, the next stage is to certainly represent and document the software requirements and get them accepted from the project stakeholders. •
  • 30.
    Stage3: Designing theSoftware • The next phase is about to bring down all the knowledge of requirements, analysis, and design of the software project. This phase is the product of the last two, like inputs from the customer and requirement gathering.
  • 31.
    Stage4: Developing theproject • In this phase of SDLC, the actual development begins, and the programming is built. The implementation of design begins concerning writing code. Developers have to follow the coding guidelines described by their management and programming tools like compilers, interpreters, debuggers, etc. are used to develop and implement the code.
  • 32.
    Stage5: Testing • Afterthe code is generated, it is tested against the requirements to make sure that the products are solving the needs addressed and gathered during the requirements stage.
  • 33.
    Stage6: Deployment • Oncethe software is certified, and no bugs or errors are stated, then it is deployed. • Then based on the assessment, the software may be released as it is or with suggested enhancement in the object segment.
  • 34.
    Stage7: Maintenance • Oncewhen the client starts using the developed systems, then the real issues come up and requirements to be solved from time to time.
  • 35.
  • 36.