Skip to main content

Introduction to Software Engineering (Class 12)

 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




Reduces complexity
Large software systems are divided into smaller, manageable modules. Each module is developed and solved independently, making the overall project easier to understand and maintain.

Minimizes software cost
Careful planning, design, and management reduce unnecessary work and resource usage. This lowers development and maintenance costs.

Saves time
Following a defined development process avoids repeated coding and rework. Projects are completed more efficiently and within schedule.

Helps manage large projects
Big projects require proper planning, coordination, testing, and maintenance. Software engineering provides methods to manage these activities effectively.

Produces reliable software
Through testing and maintenance, software becomes more dependable, secure, and capable of working correctly for its expected lifetime.

Improves effectiveness
Software developed according to established standards performs better, is easier to use, and meets organizational and user requirements more effectively.

Applications of Software Engineering

  1. 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.

  2. 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.

  3. Scientific and Engineering Applications: Software engineering is applied in developing software for scientific research, simulations, data analysis, weather forecasting, and computer-aided design (CAD).

  4. 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.

  5. 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.

  6. Entertainment and Multimedia Applications: Software engineering enables the development of video games, streaming services, animation software, and audio/video editing tools.

  7. 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:

  1. Completes the project on time by planning and monitoring project activities.
  2. Controls project cost by managing resources and budget effectively.
  3. Ensures quality by following standards and testing throughout development.
  4. Manages resources efficiently such as people, hardware, and software.
  5. Reduces project risks by identifying and handling potential problems early.
  6. Improves communication among team members, clients, and stakeholders.
  7. Meets customer requirements by delivering software according to user needs.
  8. 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

  1. Estimates the total time required to complete a project.
  2. Identifies activities with slack (float) time.
  3. Determines the start and finish time of each activity.
  4. Helps identify the critical path and critical activities.
  5. Makes complex projects easier to plan, monitor, and manage.

Disadvantages of PERT

  1. Can be complex and difficult to understand for large projects.
  2. Preparing and updating PERT charts can be time-consuming and costly.
  3. Time estimates may not always be accurate because they are based on assumptions.
  4. Delays in non-critical activities may change the critical path and affect project completion time.

 In PERT, for each activity, three time estimate can be obtained:

1. Optimistic Time Estimate (Topt):

  • Time under favourable condition.

2. Most likely Time Estimate:

  • Time under normal condition.

3. Pessimistic Time Estimate (Tpess):

  • Time under unfavourable condition.

PERT Mathematics:

  • Beta probability distribution works behind PERT.

  • Expected Completion Time:

E=(Topt+4×Tlikely+Tpess)/6
Variance = ((Tpess - Topt)/6)2

2. Critical Path Method (CPM)

Critical Path Method (CPM) is a project management and scheduling technique used to plan, schedule, and control projects. It identifies the critical path, which is the longest sequence of dependent activities that determines the minimum time required to complete the project. CPM uses fixed time estimates for each activity and helps manage project time effectively.

Advantages of CPM

  1. Identifies the critical path and critical activities.
  2. Helps estimate the minimum project completion time.
  3. Shows task dependencies and activities that can run simultaneously.
  4. Calculates slack (float) time for non-critical activities.
  5. Improves project planning, scheduling, and monitoring.

Disadvantages of CPM

  1. Time estimates may not always be accurate.
  2. Large projects can create complex network diagrams.
  3. Does not consider resource allocation.
  4. Errors in identifying the critical path can affect the project schedule.
  5. Less suitable for projects with uncertain activity durations.

Find out the Estimated time and time variance of the following project activity with the following time estimated in week. Also find the critical path and time to completion for the project.






Comments

Popular posts from this blog

Unit-1 Introduction to C#.NET (Class 12)

  What is .NET Framework? The .NET Framework is a software development platform developed by Microsoft. It provides tools and libraries to build and run Windows applications, web services, and web apps. It gives tools and libraries that make it easier to write programs. It also helps the computer run those programs safely and efficiently. Microsoft started working on .NET Framework in the late 1990s . The first version, .NET Framework 1.0 , was released in 2002 .   The .NET Framework is made up of several important components: 1.       Common Language Runtime (CLR) is the core engine that runs your program. It converts your code into machine code that the computer can understand, manages memory, handles errors, and ensures that your program runs safely. 2.       The Class Library is a large collection of ready-made code that helps you perform common tasks like working with files, databases, graphics, the i...

Unit 2 Operating System

  Unit- 2  Process and Process Scheduling 2.1 Introduce Process, Program and Process Life Cycle  Process Process is something that is currently under execution. So, an active program can be called a Process. Examples: ●        Opening a web browser to search something on the internet — the browser becomes a process. ●        Launching a music player to enjoy your favorite tunes — the music player is also a process. In computing, a process is the instance of a computer program that is being executed by one or many threads. It contains the program code and its activity. Modern operating systems support multithreading , meaning a process can have multiple threads running concurrently .   A Process has various attributes associated with it. Some of the attributes of a Process are: ●          Process Id: Every process will be given a unique id that identifies the process...