Introduction to Software Engineering
Software engineering is the branch of computer science that deals with the design, development, testing, and maintenance of software applications. Software engineers apply engineering principles and knowledge of programming languages to build software solutions for end users.
- IEEE, in its standard
610.12-1990, defines software engineering as the application of a
systematic, disciplined, which is a computable approach for the
development, operation, and maintenance of software.
- Boehm defines software
engineering, which involves, ‘the practical application of scientific
knowledge to the creative design and building of computer programs. It
also includes associated documentation needed for developing, operating,
and maintaining them.’
Importance of Software Engineering
Applications of Software Engineering
Business and Commercial Applications: Software engineering is used to develop business software such as accounting systems, payroll systems, inventory management systems, and customer relationship management (CRM) applications.
Web and Mobile Applications: Software engineering helps in creating web and mobile applications, including e-commerce websites, online banking systems, social networking platforms, and smartphone applications.
Scientific and Engineering Applications: Software engineering is applied in developing software for scientific research, simulations, data analysis, weather forecasting, and computer-aided design (CAD).
Embedded and Real-Time Systems: Software engineering is used in embedded and real-time systems such as smart devices, automobile control systems, medical equipment, air traffic control systems, and industrial automation systems.
Healthcare and Educational Systems: Software engineering supports the development of healthcare applications such as hospital management systems and medical software, as well as educational applications like e-learning platforms and online examination systems.
Entertainment and Multimedia Applications: Software engineering enables the development of video games, streaming services, animation software, and audio/video editing tools.
Artificial Intelligence Applications: Software engineering is used to build artificial intelligence systems, including chatbots, recommendation systems, machine learning applications, and speech recognition software.
UNIT 2 SEP Project management techniques
Software Project
A software project involves all steps to create a software product, including requirement gathering, design, coding, testing, deployment, and maintenance. It follows a planned process within a set time to deliver the final product.
Need for Software Project Management
Software Project Management is the process of planning, organizing, directing, and controlling software development activities to complete a project successfully within the specified time, cost, and quality.
Software is intangible and usually custom-built for clients. Technologies change fast, making development risky and challenging. Proper project management is needed to handle these risks and ensure the project succeeds. Here are the few needs of software project management:
- Completes the project on time by planning and monitoring project activities.
- Controls project cost by managing resources and budget effectively.
- Ensures quality by following standards and testing throughout development.
- Manages resources efficiently such as people, hardware, and software.
- Reduces project risks by identifying and handling potential problems early.
- Improves communication among team members, clients, and stakeholders.
- Meets customer requirements by delivering software according to user needs.
- Increases the chances of project success through proper planning, coordination, and control.
Triple Constraints of Software Projects
The image (mentioned above) shows the triple constraints of software project management:
· Scope (features or functionality),
· Time (project schedule), and
· Cost (budget).
All three constraints are interconnected. If any one of them is changed (for example, if the budget is reduced), it can negatively affect the other two (such as quality or deadline).
To ensure the success of a software project, the project manager must:
· Understand and fulfill user requirements,
· Keep the project within the client's budget, and
· Complete it within the given timeline.
Hence, software project management plays a critical role in planning, organizing, monitoring, and controlling all aspects of a project to meet its goals efficiently.
Introduction to Project Development Techniques
Project development techniques are methods used to plan, organize, manage, and complete a project efficiently. In software development, these techniques guide the team through all stages of the project, such as requirements gathering, system design, coding, testing, deployment, and maintenance.
These techniques help ensure that the project is completed:
- On time
- Within budget
- According to client requirements
- With proper use of available resources
Without proper planning and management, software projects may face delays, increased costs, poor quality, or even failure.
1. PERT (Program Evaluation and Review Technique)
Program Evaluation and Review Technique (PERT) is a project scheduling and management technique used to plan, organize, and coordinate project activities. It represents all project tasks in their correct sequence and estimates the time required to complete the project.
PERT uses a PERT Chart, which is a network diagram showing the relationship and dependency between project activities. It helps project managers identify the critical path, estimate project completion time, and monitor project progress.
Advantages of PERT
- Estimates the total time required to complete a project.
- Identifies activities with slack (float) time.
- Determines the start and finish time of each activity.
- Helps identify the critical path and critical activities.
- Makes complex projects easier to plan, monitor, and manage.
Disadvantages of PERT
- Can be complex and difficult to understand for large projects.
- Preparing and updating PERT charts can be time-consuming and costly.
- Time estimates may not always be accurate because they are based on assumptions.
- Delays in non-critical activities may change the critical path and affect project completion time.
Comments
Post a Comment