Business Process Engineering and Software Development Lifecycles

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 52

CS211 ICT Fundamentals

Ashenafi Shifferaw, Lily Abebe & Tsegamlak Molla

Autumn 2023
Business Process Engineering
and Software Development
Lifecycles
Chapter 7

2 CS211 ICT Fundamentals (Autumn 2023)


Business Process Engineering (BPE)

• The discipline of analyzing, designing, implementing, and


improving business processes to optimize efficiency and
effectiveness.

3 CS211 ICT Fundamentals (Autumn 2023)


Introduction

• This chapter provides a foundational understanding of program


development steps, SDLC phases, and different SDLC models.

• With this knowledge, business professionals can better engage


with technology initiatives and bridge the gap between business
needs and software solutions.

4 CS211 ICT Fundamentals (Autumn 2023)


Agenda

• Steps in program development

• Phases of SDLC

• SDLC models

5 CS211 ICT Fundamentals (Autumn 2023)


Steps in Program
Development
7.1

6 CS211 ICT Fundamentals (Autumn 2023)


Steps in Program Development

• Effective business process engineering often relies on the efficient


development of software solutions to automate or optimize workflows.

• Understanding the fundamental steps in program development is crucial


for bridging the gap between business needs and technological
implementation.

• Here's a breakdown of the primary stages:

7 CS211 ICT Fundamentals (Autumn 2023)


Steps in Program Development

• Requirements Gathering: This initial phase involves identifying the


needs and desires of stakeholders.

• Through interviews, workshops, and documentation analysis, a


clear understanding of the problem to be solved and the desired
functionalities is established.

8 CS211 ICT Fundamentals (Autumn 2023)


Steps in Program Development

• System Design: Based on the gathered requirements, a detailed


system design is created.

• This includes defining the system architecture, user interface, data


flow, and security considerations.

• Tools like flowcharts, data dictionary diagrams, and user interface


mockups help visualize the future system.

9 CS211 ICT Fundamentals (Autumn 2023)


Steps in Program Development

• Development: This is where the code comes to life.

• Programmers write code in specific programming languages based


on the system design.

• Unit testing and code reviews ensure code quality and


functionality.

10 CS211 ICT Fundamentals (Autumn 2023)


Steps in Program Development

• Testing: After development, the software undergoes rigorous


testing.

• Various types of testing, including unit testing, integration testing,


system testing, and user acceptance testing, ensure the software
functions as intended and meets user expectations.

11 CS211 ICT Fundamentals (Autumn 2023)


Steps in Program Development

• Deployment: Once tested and approved, the software is deployed


to a production environment.

• This may involve installing the software on users' machines,


configuring servers, and integrating with existing systems.

12 CS211 ICT Fundamentals (Autumn 2023)


Steps in Program Development

• Maintenance: Post-deployment, software requires ongoing


maintenance and support.

• This includes fixing bugs, adding new features, and addressing user
issues.

13 CS211 ICT Fundamentals (Autumn 2023)


Steps in Program Development

• Here's a practical example to illustrate the steps in program


development within the context of business process engineering:

• Let's say a company wants to streamline its order processing


system to reduce delays and improve customer satisfaction.

14 CS211 ICT Fundamentals (Autumn 2023)


Requirements Gathering

• Interview stakeholders: Sales representatives, customer service


agents, warehouse staff, and managers are interviewed to
understand their pain points, needs, and expectations for a new
system.

• Analyze existing processes: Order forms, workflows, and data flow


are examined to identify bottlenecks and inefficiencies.

15 CS211 ICT Fundamentals (Autumn 2023)


Requirements Gathering

• Determine requirements: Specific functionalities are defined, such as:


• Online order submission

• Order tracking for customers

• Inventory management

• Automatic notifications for low stock

• Integration with payment gateways

• Reporting capabilities

16 CS211 ICT Fundamentals (Autumn 2023)


System Design

• Create flowcharts: Visually map the current and proposed order


processing flows to identify areas for improvement.

• Design user interfaces: Sketch wireframes or mockups of the new


system's screens, ensuring user-friendliness and intuitive navigation.

• Plan data structures: Determine how data will be stored and organized
within the system, considering database design and data security
measures.

17 CS211 ICT Fundamentals (Autumn 2023)


Development
• Choose programming languages and tools: Select appropriate technologies
based on project requirements and developer expertise, such as Python for
backend development and JavaScript for frontend development.

• Write code: Developers translate system designs into functioning code,


following coding standards and best practices.

• Conduct unit testing: Individual code components are tested in isolation to


ensure they work as intended.

18 CS211 ICT Fundamentals (Autumn 2023)


Testing

• Perform integration testing: System components are tested together to


verify seamless interaction.

• Conduct system testing: The entire system is tested to ensure it meets


all requirements and functions as a whole.

• Gather user feedback: Users interact with the system and provide
feedback during user acceptance testing (UAT) to identify any usability
issues or missing features.

19 CS211 ICT Fundamentals (Autumn 2023)


Deployment

• Install the software: The system is deployed to production servers


or made accessible to users through cloud-based solutions.

• Train users: Employees are provided with training on how to use


the new system effectively.

20 CS211 ICT Fundamentals (Autumn 2023)


Maintenance

• Address bugs: Developers fix any reported errors or glitches in the


system.

• Add new features: Based on user feedback and evolving business


needs, new functionalities are added to the system.

• Provide ongoing support: Users receive prompt assistance with


any technical issues or questions they encounter.

21 CS211 ICT Fundamentals (Autumn 2023)


Maintenance

• Throughout this process, business process engineers and software


developers collaborate closely to ensure the technology solution
aligns with business goals and drives process improvement.

22 CS211 ICT Fundamentals (Autumn 2023)


Phases of SDLC
7.2

23 CS211 ICT Fundamentals (Autumn 2023)


Phases of SDLC

• The Software Development Life Cycle (SDLC) is a structured


framework for planning, building, and deploying software
applications.

• Different SDLC models may have specific phases, but core stages
often include:

24 CS211 ICT Fundamentals (Autumn 2023)


Phases of SDLC

• Planning and Analysis: This involves defining project scope,


feasibility, and resource requirements.

• Design: During this phase, the system architecture, user interface,


and data flow are designed.

• Development: Actual coding and unit testing take place in this


phase.

25 CS211 ICT Fundamentals (Autumn 2023)


Phases of SDLC

• Testing: Various types of testing ensure software functionality and


user satisfaction.

• Deployment: The software is installed and configured for


production use.

• Maintenance: Ongoing bug fixes, feature enhancements, and


support are provided.

26 CS211 ICT Fundamentals (Autumn 2023)


Phases of SDLC

• Here's how the phases of the Software Development Life Cycle


(SDLC) would apply to the order processing system example:

27 CS211 ICT Fundamentals (Autumn 2023)


Phases of SDLC
1. Planning and Analysis:
• Define project scope: The project team clearly outlines the boundaries of the
project, focusing on streamlining the order processing system and its core
functionalities.
• Assess feasibility: They evaluate the technical and resource requirements to
determine if the project is feasible within budget and time constraints.
• Conduct cost-benefit analysis: The potential benefits of the new system, such
as increased efficiency and customer satisfaction, are weighed against the
costs of development and implementation.

28 CS211 ICT Fundamentals (Autumn 2023)


Phases of SDLC
2. Design:

• Create system architecture: Developers design the overall structure of


the system, including its components, interfaces, and data flow.

• Develop user interface: User-friendly screens and navigation elements


are designed, incorporating feedback from stakeholders and usability
testing.

• Plan data storage: Database structures are designed to securely store


and manage order information, customer data, and inventory levels.

29 CS211 ICT Fundamentals (Autumn 2023)


Phases of SDLC
3. Development:

• Write code: Developers write the code for the system's backend
and frontend components, ensuring adherence to coding
standards and best practices.

• Integrate with existing systems: The new system is designed to


seamlessly interact with existing databases, payment gateways,
and other relevant systems within the company's IT infrastructure.

30 CS211 ICT Fundamentals (Autumn 2023)


Phases of SDLC
4. Testing:
• Conduct unit testing: Individual code modules are tested to ensure they
function as intended.
• Perform integration testing: Different system components are tested
together to verify data flow and functionality.
• Conduct system testing: The entire system is tested to ensure it meets all
requirements and user expectations.
• Gather user feedback: During user acceptance testing (UAT), potential users
provide feedback on the system's usability and identify any issues.

31 CS211 ICT Fundamentals (Autumn 2023)


Phases of SDLC
5. Deployment:

• Install the software: The system is installed on production servers


or deployed to the cloud.

• Train users: Employees receive training on how to use the new


system effectively, including order submission, tracking, inventory
management, and reporting.

32 CS211 ICT Fundamentals (Autumn 2023)


Phases of SDLC
6. Maintenance:

• Monitor system performance: The system's performance is monitored


to identify any issues or areas for improvement.

• Address bugs: Developers fix any reported bugs or errors in the system.

• Implement updates: Updates are rolled out to address security


vulnerabilities or enhance features based on user feedback and evolving
business needs.

33 CS211 ICT Fundamentals (Autumn 2023)


Phases of SDLC

• By following the SDLC phases, the company can ensure a


structured and well-managed development process, leading to a
successful software solution that streamlines order processing and
delivers business benefits.

34 CS211 ICT Fundamentals (Autumn 2023)


SDLC Models
7.3

35 CS211 ICT Fundamentals (Autumn 2023)


SDLC Models
• Several SDLC models exist, each offering unique approaches to managing
software development projects.

• Choosing the appropriate SDLC model depends on various factors, including


project size, complexity, risk tolerance, and organizational culture.

• Understanding the strengths and weaknesses of different models helps select


the one that best aligns with project goals and business needs.

• Here are some common models:

36 CS211 ICT Fundamentals (Autumn 2023)


SDLC Models

• Waterfall Model: This sequential model follows a linear


progression through each phase, with completion of one phase
required before moving to the next.

• Agile Model: This iterative and incremental model focuses on small,


deliverable chunks of functionality delivered through short sprints.
Frequent feedback and adaptation are key features.

37 CS211 ICT Fundamentals (Autumn 2023)


SDLC Models

• Spiral Model: This risk-driven model combines sequential and


iterative elements, emphasizing risk identification and mitigation
throughout the development process.

• Prototype Model: This model builds a working prototype of the


software early on, allowing for user feedback and iterative
development based on real-world experience.

38 CS211 ICT Fundamentals (Autumn 2023)


Connecting Business Process and SDLC

• Business process engineering and SDLC are intertwined.

• By clearly defining business processes and their desired outcomes,


business analysts can inform software development by providing
specific requirements and functionality needs.

39 CS211 ICT Fundamentals (Autumn 2023)


Connecting Business Process and SDLC

• Conversely, understanding the capabilities and limitations of


software solutions can influence the optimization and redesign of
business processes.

• Effective collaboration between business process engineers and


software developers is crucial for ensuring that technology drives
successful process improvement and value creation.

40 CS211 ICT Fundamentals (Autumn 2023)


SDLC Models

• A comprehensive explanation of the Agile model in software


development.

• Agile Model: Embracing Flexibility and Collaboration

• Agile isn't just a model; it's a mindset that embraces adaptability,


collaboration, and continuous improvement

41 CS211 ICT Fundamentals (Autumn 2023)


Agile Model
Key Characteristics:

• Iterative and Incremental: Breaks down projects into smaller,


manageable chunks called sprints (typically 1-4 weeks long).

• Early and Frequent Delivery: Focuses on delivering working


software early and often, allowing for continuous feedback and
adaptation.

42 CS211 ICT Fundamentals (Autumn 2023)


Agile Model
Key Characteristics:

• Adaptive Planning: Embraces change and welcomes feedback


throughout the process, adjusting plans as needed.

• Customer Collaboration: Prioritizes active customer involvement


throughout the development process to ensure alignment with their
needs.

• Self-Organizing Teams: Encourages cross-functional teams with


autonomy and responsibility for managing their work.

43 CS211 ICT Fundamentals (Autumn 2023)


Agile Model
Key Phases:

• 1. Planning:
• Define project goals and scope for the sprint.
• Prioritize features and tasks in the backlog.
• Estimate effort and time for each task.

• 2. Development:
• Developers work on assigned tasks, collaborating closely.
• Daily standup meetings keep everyone aligned.

44 CS211 ICT Fundamentals (Autumn 2023)


Agile Model
Key Phases:

• 3. Testing:
• Testers conduct rigorous testing to ensure quality.
• Defects are identified and addressed quickly.

• 4. Review and Retrospective:


• Team demonstrates working software to stakeholders.
• Feedback is gathered and incorporated into future sprints.
• Team reflects on what went well and identifies areas for improvement.

45 CS211 ICT Fundamentals (Autumn 2023)


Agile Model
Benefits of Agile:

• Increased customer satisfaction: Early and frequent delivery of


working software leads to better alignment with customer needs
and faster feedback cycles.

• Enhanced flexibility: Ability to adapt to changing requirements and


priorities, reducing risk and improving project outcomes.

46 CS211 ICT Fundamentals (Autumn 2023)


Agile Model
Benefits of Agile:

• Improved teamwork and communication: Cross-functional teams foster


collaboration, knowledge sharing, and collective problem-solving.

• Faster time to market: Iterative approach enables quicker delivery of


valuable features to users.

• Increased visibility and transparency: Regular progress reviews and


demos keep stakeholders informed and involved.

47 CS211 ICT Fundamentals (Autumn 2023)


Key Terms
• Software Development Life Cycle (SDLC): A framework for planning, creating,
deploying, and maintaining software applications.
• Requirements Gathering: The process of identifying and documenting the
needs and expectations of stakeholders for a software solution.
• System Design: The phase where the architecture, user interface, and data
flow of the software are defined.
• Development: The act of writing code to implement the functionalities of the
software system.

48 CS211 ICT Fundamentals (Autumn 2023)


Key Terms
• Testing: The process of evaluating the software to ensure it meets all requirements and
functions as intended.

• Deployment: The process of installing and configuring the software in a production


environment for user access.

• Maintenance: The ongoing process of fixing bugs, adding features, and providing support for
the software.

• Unit Testing: Testing individual code modules to ensure they function as intended.

• Integration Testing: Testing how different system components interact with each other.

49 CS211 ICT Fundamentals (Autumn 2023)


Key Terms
• System Testing: Testing the entire software system to ensure it meets all
requirements and functions as a whole.
• User Acceptance Testing (UAT): Testing the software with potential users to
gather feedback and identify usability issues.
• SDLC Models: Different frameworks for managing software development
projects, such as Waterfall, Agile, Spiral, and Prototype models.
• Feasibility Analysis: Evaluating the technical and resource requirements of a
project to determine its practicality.

50 CS211 ICT Fundamentals (Autumn 2023)


Key Terms
• Cost-Benefit Analysis: Weighing the potential benefits of a project against its costs to make
informed decisions.

• User Interface (UI): The screens and elements users interact with in a software program.

• Database Design: Defining how data will be stored and organized within the software system.

• System Architecture: The overall structure of the software system, including its components
and their relationships.

• Cloud-Based Solutions: Software applications delivered through the internet instead of being
installed on individual computers.

51 CS211 ICT Fundamentals (Autumn 2023)


Further Exploration

• Explore real-world examples of companies implementing successful


business process improvement through software development.

• Research new approaches to SDLC, such as DevOps and the use of low-
code/no-code platforms.

• Investigate the role of emerging technologies like artificial intelligence


and blockchain in shaping business process engineering and software
development.

52 CS211 ICT Fundamentals (Autumn 2023)

You might also like