The first layer involves choosing the semi-automated and automated tools that will become the framework for the project.
Characteristics of software
To remember :
- Software is developed or engineered; it is not manufactured in the classical sense.
- Software doesn’t 'wear out.'
- Although the industry is moving toward component-based construction, most software continues to be custom built.
- Software gives component-based construction, it provides reusability of components.
Software Myths
To remember :
- Management Myths:
- We already have a book that’s full of standards and procedures for building software. Won’t that provide my people with everything they need to know?
- If we get behind schedule, we can add more programmers and catch up.
- If I decide to outsource the software project to a third party, I can just relax and let that firm build it.
2.Customer Myths:
- A general statement of objectives is sufficient to begin writing programs—we can fill in the details later.
- Software requirements continually change, but change can be easily accommodated because software is flexible.
3.Practioner's Myths:
- Once we write the program and get it to work, our job is done.
- Until I get the program “running” I have no way of assessing its quality.
- The only deliverable work product for a successful project is the working program.
- Software engineering will make us create voluminous and unnecessary documentation and will invariably slow us down.
Definitions
Layered Technology
fig: Software Engineering Layers
Tools
Methods
The second layer establishes the methods of developing the software. This includes any technical knowledge and resources required for development. Some tasks include choosing methods for:
- Communication
- Analysis
- Modeling
- Program construction
- Testing and support
It’s good to remember that in the Tools layer, your team will choose the tools you will use for the project, but in the Method layer, you will be choosing how to use the tools.
Process
Layer three focuses on the framework that needs to be established to deliver software effectively. This layer can be broken down into five sub-layers:
- Communication. Various facts of communication are needed at this point, and in fact, they are critical to success. First, communication with the client is required to understand the needs, demands, criteria, and parameters of the project. Team communication disseminates this knowledge so that everyone is on the same page. Ongoing communication prevents misunderstanding and wasted man-hours.
- Planning. This sub-layer involves making a map or blueprint to break down the process of development and document goals, milestones, and plans.
- Modeling. For this part of the process, developers create a model so the client can visualize the finished product.
- Construction. This sub-layer refers to the actual coding and testing of the product.
- Deployment. This differs from modeling. Rather than just providing the client with a model, the team delivers an actual version of the software for testing, evaluation, and feedback.
Quality
At this point, the software is developed and refined to a point, but it is critical to apply quality control to the finished product. Besides testing the end product to ensure that it meets the client’s specifications, it also needs real-world testing to determine how efficient, usable, and reusable it will be, and it needs to explore how many resource maintenance will require. If it is replacing an older software or platform, quality control will ensure the new software will meet the needs.
