Deploying the IT Application.
Peter Sigurdson
Professor of Business IT Technology, Ontario College System | Serial Entrepreneur | Realtor with EXPRealty
This lecture describes the elements of deploying the IT Application. We cover the role of user stories, lexical analysis to identify ACTORS, the transformation of use cases into UML, and the relationship between use cases and method calls in classes through a traceability matrix. We weave in the use of collaboration tools like Trello, Slack, and GitHub, showing how they support Agile development and integrate with the Unified Process.
The software crisis of the 1970s and 1980s refers to a period when the complexity of software was growing rapidly, but the methods and tools to manage this complexity were not keeping pace. The term was first coined during the NATO Software Engineering Conference in 1968. The crisis led to project overruns, blown budgets, lower-quality software, and outright project failures. There were several root causes for this:
1. Complexity:
Software systems were becoming more complex, requiring sophisticated tools and methodologies that simply didn't exist at the time. Without proper tools and methods, complexity quickly became unmanageable.
2. Lack of Standardized Methodologies:
There were no standard methodologies for software development. Different teams used different approaches, making coordination and consistency difficult to achieve.
3. Limited Understanding of Software Engineering:
Software Engineering was still a relatively new discipline, and many of its principles were not fully understood or defined. This led to a lack of professional standardization and a mix of quality in the results.
4. Hardware Advancements without Corresponding Software Development Tools:
Hardware was advancing quickly, allowing for more complex software systems. However, the tools to develop these systems were lagging behind, creating a mismatch between what could be built and how it could be managed.
5. Unrealistic Expectations and Poor Communication:
Management often had unrealistic expectations regarding the development process, partly due to a lack of understanding of the complexities involved. Poor communication between developers and managers often compounded these problems.
Impact on Software Engineering and Project Management:
The software crisis led to significant changes in how software was developed and managed:
a) Development of Structured Programming:
Structured programming was introduced to make code more readable and maintainable. This approach advocates for breaking down a program into smaller, manageable functions or modules.
b) Introduction of Software Engineering Methodologies:
Methodologies such as the Waterfall model and later Agile methods were introduced to provide a systematic approach to software development, ensuring all stages were well-defined and controlled.
c) Focus on Requirements Engineering:
Proper understanding and documentation of requirements became crucial to avoid misunderstandings and to meet customer needs.
d) Standardization and Professionalization of the Field:
Efforts were made to standardize software engineering practices, and it became recognized as a professional field. Universities started offering specialized courses and degrees in software engineering.
e) Development of Project Management Tools and Practices:
Tools for project management were created to help manage schedules, budgets, and resources, ensuring that projects could be delivered on time and within scope.
领英推荐
f) Emphasis on Quality Assurance and Testing:
Quality assurance became a key concern, with more rigorous testing and verification processes being introduced to ensure software reliability and correctness.
In summary, the software crisis of the 1970s and 1980s was a turning point that forced the industry to mature rapidly. It led to a more disciplined approach to software development, the creation of standardized methodologies, a focus on education and professional standards, and the development of tools to manage the complexity of modern software systems.
These changes laid the foundation for the modern software industry and continue to influence how software is developed and managed today.
Unified Process Engagement: Emphasizing User Stories, Actors, and Collaborative Development
In the world of software development, methodologies and practices evolve to meet the changing needs of the industry. The Unified Process is one such method that leverages a combination of user stories, lexical analysis, and collaboration tools to create a comprehensive approach. Let's dive into how these elements work together.
Role of User Stories in the Unified Process
At the start of the Unified Process engagement, user stories are fundamental. These stories are simple descriptions of a desired feature, usually expressed from the user or customer's viewpoint.
Lexical Analysis of User Stories
When developers begin working on a project, they use lexical analysis to dissect these user stories. The main focus here is to identify ACTORS, which represent entities external to the system that initiate actions or receive values. Use Cases are a business process discovery mechanism.
From Use Cases to UML
By identifying ACTORS, developers can understand the interactions with the system and create use cases. These cases are then translated into the Unified Modeling Language (UML), a standardized notation for designing and documenting software systems.
Traceability Matrix
The traceability matrix connects the dots between the use cases and method calls in the classes. By ensuring that requirements from user stories are faithfully represented in the code, the quality and coherence of the software are enhanced.
Collaborative Development in Agile
The Unified Process integrates seamlessly with Agile methodologies, fostering collaboration and communication through tools like Trello, Slack, GitHub Issues, and Actions.
Trello and Slack
For an Agile development team, tools like Trello and Slack are essential. While Trello organizes tasks, Slack promotes team communication and collaboration, becoming instrumental in daily stand-up meetings.
GitHub Issues and Actions
With GitHub Issues and Actions, development teams can link their work with the traceability matrix. This connection allows a clear relationship between tasks, use cases, and method calls in classes, fostering efficiency in the development process.
Conclusion
The Unified Process's focus on user stories, the identification of ACTORS, and the translation of use cases into UML marks a modern, robust approach to software development. By integrating collaboration tools like Trello, Slack, and GitHub, it embodies the principles of Agile development, ensuring flexibility, transparency, and quality in software projects. Whether you are a developer, project manager, or someone interested in the intricacies of software creation, understanding these concepts can deepen your appreciation of the ever-evolving field of software engineering.