Software development is a complex multi-step process. In the study of Software Engineering we use the term the Systems Development Life Cycle (SDLC) to describes this process. The major steps are: planning, creating, testing, deploying, and maintaining a system.
Developers often focus on the first four parts of the story. But the last part is usually the most expensive one.
Maintenance of a living software application includes fixes and improvements, which require planning, creating, testing and deploying all over, again and again.
While developing systems for a long life, the best practices recommend to make sure that the maintenance of the system can be done in a convenient and efficient manner.
Planning of any development usually starts with a business idea. A Business Owner usually working together with a Business Analyst captures this idea in the Business Requirements document.
This is a starting point of the Analysis, which is followed with System Architecture Analysis.
Architecture is the highest system description focusing on WHAT with very little of HOW, implementation details, which are gradually added in the Design and Development phases.
Ideally, a Business Architect would work with a System Architect and a Data Architect to create architecture views of a future system.
The Business Architecture views describe business processes performed and touched by the new system.
- The Business Architecture Process View focuses on business workflows and related scenarios.
- The Business Architecture Product View focuses on related products and services.
The Data Architecture views describe data sources that are used by the system.
The Service Architecture views describe services and applications engaged by the system and their interactions.
The Technology Architecture views describe Infrastructure, including Platforms, Servers, Network, and Security components.
Architecture views are complementary. They provide the first layer of mapping between the business idea and technology implementation.
Software developers work together with the architects in the Design and Implementation phases and team-up with the Software Quality Assurance (SQA) team in the Testing phase. Note, that Development and Implementation terms are used interchangeably.
Each development step is usually described first in planning documents, System Design and Component Design levels, and then are implemented as programs.
In Java each program starts with a header, a special part of the source code, describing the plan for the program.
Software development is usually a team project. There are several methods conducting teamwork in the development.
The Waterfall method suggests completing one step of SDLC before starting another.
Was it clear so far?
The Agile method suggests incremental iterative development with small portions called "sprint" with one or two week milestones and with flexibility to re-factor previous steps.
Agile is the most commonly accepted development methodology today.
The method includes 20 -30 min daily team meetings for reporting the status and the plan.
The Testing phase is usually planned in early stages of Analysis to map each Business Goal with a proper testing procedure.
A special group of enterprise architects establishes a review process for each development step to make sure that a new system development serves a whole company or enterprise, not just a single department. This process follows the recommendations of The Open Group Architecture Framework (TOGAF), called Enterprise Continuum, see below.
The next phase after successful testing is the system Deployment. After a system is deployed in production, the system will need Maintenance. The Maintenance phase is as long as the system life. This usually is the longest and the most expensive phase of SDLC.
- Create a MS Word copy and add specific SEARCH criteria to all sections. In each section provide details that you feel are necessary.
You need to modify the existing Business Requirements document.
Add new requirements of SEARCH and provide design details on how to implement...
Imagine that you are a product manager, you want to improve the product, you suggest new features, which are not there yet.
This is business part.
Then, imagine that you are a designer.
You take these new features as requirements and describe the plan how implement the features - add DB tables or table columns, add specific screens, etc. No code is required, no screen shots, just your thoughts, brief descriptions on a very high level...
- Answer the QnA.
Then Upload your MS Word document and also email it to dean@ituniversity.us with the following name: 1.3.Your.Name.BusinessRequirements.docx
Write an essay with a design spec and a related source sample on AOP and send to dean@ituniversity.us
Write an essay with a design spec and a related source sample on Scala and send to dean@ituniversity.us