In: Computer Science
In your course, you are introduced to different system integration concepts; However, Discuss
1. As we know consistency as an integral part of successfully delivering software. It applies to all aspects of development: Code style, comments, tools, on boarding, creation of new services. It also extends to product management, defining and tracking tasks, and generally company processes.
four design challenge:-
1)Requirements Volatility
A major reason for the complexity of software projects is the constant change of requirements. When designed properly, software can be modified or extended easily; however, when designed poorly, modifying software can become overwhelming and lead to all sorts of complex problems. Unlike the development of computer hardware, bridges, houses, or mechanical parts, software's very own nature allows itself to change to provide different or new functionality to systems.This same trait that makes software so desirable is what makes it also so complex. Requirements volatility is challenging because they impact future or already going development efforts.
2) The Process
Software Engineering is a process oriented field. Software processes allows engineers to organize the steps required to develop software solutions with schedule and cost constraints. Therefore, at the core of every software development company, there should be a sound, well understood, and consistent process for software development. Processes can also be developed and customized for particular phases of the software engineering life-cycle. In the design phase, software processes involve a broad set of activities and tasks that bridge the gap between requirements and construction while adhering to a set of project-specific (or company-specific) constraints. These activities include common ones, such as architectural and detailed design, as well as other supporting management activities. These supporting activities include establishing a design review process, defining design quality evaluation criteria, evaluating design reuse, establishing design change management and version control procedures, design tool adoption, resource allocation, and others. In many cases, a company’s design process is not well established, poorly understood, or approached with minimalistic expectations that ignore aspects that are essential to executing a successful design phase
3)The Technology
Software is meant to be everywhere. From healthcare systems, education, defense, and everyday ubiquitous devices, software is required to operate on a massive and always evolving technology landscape. Besides the operating environment, the technology for designing and implementing today's software systems continues to evolve to provide improved capabilities. Examples of these include modeling languages and tools, programming languages, development environments, design patterns, and design strategies. As new technologies emerge, software engineers are required to assimilate and employ them all at the same time. In some cases, emerging technologies do not completely replace old ones.The technology aspect of software design is challenging because it is fast and ever-changing, therefore designers must keep abreast of the latest advances and become proficient in the application of these advancements while maintaining rooted in legacy technology.
4)The Ethical and Professional Practices
Designers create blueprints that drive the construction of the software. During this creation process, designers are required to determine how design decisions affect the environment and the people that use the software. In many cases, the software development process is traditionally carried out under tight schedule constraints. Inherently, all phases of the development life-cycle suffer from this, including the design phase. This creates external pressures that can lead designers to deviate from the normal design approach to meet these demands, which can have catastrophic consequences. No matter how tight deadlines are, how much animosity exists within the design team, or how much other external/personal factors are brought into the design phase, software designers must exhibit strong ethical and professional practices to ensure that the systems they build are of highest quality and that all design considerations are properly evaluated.
2. There are many planning ideas and decisions by managers that are not accepted by team members due to the complexity of change in project planning stage. What should you do?
Ans.- Well, first, i will do the right thing by gathering input from your team before making the decision. Too often, managers make decisions that will affect team members without first giving people a chance to weigh in, and that increases the chances that you’ll get push-back. So it’s good that you consulted with people from the start.
Communication is the second key ingredient. It's your job as the leader to explain to each team member why and how their role is essential to overcoming the hurdles inherent in the decision.