The document discusses the software engineering basics, including the software crisis, causes of the crisis, and solutions. It describes software engineering as applying scientific principles to invent, design, build, maintain and improve software products. The importance of software engineering is that it reduces complexity, minimizes costs, decreases timelines, and handles large projects to deliver reliable, effective software. The document also outlines the software development life cycle (SDLC) which includes planning, defining requirements, designing, developing, testing, deploying, and maintaining software through different stages.
2. 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.
3.
4. 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.
5. Factors are contributing to the software crisis
• Poor project management.
• Lack of adequate training in software engineering.
• Less skilled project members.
• Low productivity improvements.
6. 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.
7. 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.
8.
9. 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
10. Need of Software Engineering
• Huge Programming
• Adaptability
• Cost
• Dynamic Nature
• Quality Management
11. 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.
13. The importance of Software engineering is as follows
• Reduces complexity
• To minimize software cost
• To decrease time
• Handling big projects
• Reliable software
• Effectiveness
14. 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.
19. 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.
20. Types of software process models
• A workflow model
• A dataflow or activity model
• A role/action model
21. There are several various general models or paradigms of
software development
• The waterfall approach
• Evolutionary development
• Formal transformation
• System assembly from reusable components
25. 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.
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
28. 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.
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 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.
31. 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.
32. 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.
33. 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.
34. 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.