Assignment
Week 8 Assignment – Nonfunctional Properties, Version Control, and Applied Architectures and Styles
Introduction
Assume that you are still designing the online course management system that you worked on in previous assignments. Most of the major requirements of this system have been identified already, but there are several nonfunctional properties that have yet to be addressed that have a crucial role in the functionality of this system. In addition, you were informed that the funding for development is frugal. You believe that having some kind of software version control is essential, especially for the administrators of the system.
Instructions
Write a 5–6 page paper in which you:
1. Identify at least four nonfunctional properties of the system.
2. Draw UML diagrams to explain the role of each nonfunctional property identified through the use of graphical tools in Microsoft Word or Visio, or an open-source alternative such as Dia. Note: The graphically depicted solution is not included in the required page length.
3. Create a testing strategy for testing the nonfunctional properties of the system.
4. Compare and contrast the architecture for the online course management system to that of another online system such as Amazon or eBay.
5. Take a stance on whether software version control is critical to the development of this online course management system. Provide a rationale to support your answer.
6. List the available version control software solutions and recommend one for this project. Provide a rationale to support your recommendation.
7. Compare and contrast version-control and configuration management regarding the roles and functionalities when a software system changes and/or a new system is adopted.
8. Use four sources to support your writing. Choose sources that are credible, relevant, and appropriate. Cite each source listed on your source page at least one time within your assignment. For help with research, writing, and citation, access the
library
or review
library guides
.
This course requires the use of Strayer Writing Standards. For assistance and information, please refer to the Strayer Writing Standards link in the left-hand menu of your course. Check with your professor for any additional instructions.
The specific course learning outcome associated with this assignment is:
· Outline nonfunctional properties and the need for version control in the design of a software system.
System Implementation
Tom Anderson
Professor Haseltine
February 21, 2021
Challenges that the architecture may present during the implementation and speculate on how to address these challenges
The introduction of a modern technological solution entails a variety of difficulties. The method may be frustrating, complicated, and lengthy—all the factors that may drive businesses to stop making a switch at all. This adds to productivity and sustainability problems as businesses struggle to do business in a fractured way. In comparison, as organizations leap and get started on the applications Implementation process, insufficient preparation and unreasonable aspirations can contribute to the project’s failure. The cost can increase as a consequence. Knowing the primary obstacles of undertaking programs will help companies prevent them. With a robust project schedule and realistic expectations, even the most complicated execution will produce performance and return on investment in a reasonable period. In the end, the advantages of introducing a better approach greatly exceed the possible dangers along the way. Some of the challenges include:
Timelines: The approximate time of the standard program development process differs significantly. For a comprehensive, automated approach such as the Online course management system, the typical deployment will span from 11 to 18 months. The Database-centric Online course management system also includes financial, sales, support, client experience management, and human resources. Unlike simplified out-of-the-box software, these implementations need longer deployment times due to the inclusion of business-wide details. Coming up with well-stipulated plans on the deployment process will significantly minimize the time taken to implement these solutions.
Conducting business as usual while migrating to the new platform: Often due to lack of funds, shortage of personnel support, or both, workers are expected to perform the activities of their core jobs and to contribute to the software project. Having a project lead for your implementation, ideally someone with a broad knowledge of the organization. They should have the authority to make decisions along the way to ensure the process is moving smoothly.
Suggest the options in implementing the course management system regarding the development platform, database technology, and other technology required.
Implementation of a modern software framework is a significant undertaking that needs to be carefully prepared to achieve smooth implementation. To incorporate the Online Course Management Framework, we can select the best platform for program usability. I recommend using Java language for this application. Being a platform-independent language, Java serves right for this system. Java Servlet Pages (JSP) play a very critical role in implementing the framework. For client-side validation, JavaScript plays a significant role in form validations and ensures human checks via the re-captcha functionality that they offer.HTML5, CSS3, and Bootstrap are used to develop the User Interface and ensure a fantastic User experience. The bootstrap framework will render our application responsive across all devices thanks to its grid-based auto-resizing technology methods.
The nature of this application requires a database technology that will support the complexities that come with it. This application will contain a lot of relationships among datasets, thus requiring a relational database.MYSQL server, which is widely used in designing the backend, will be used. With it, we can create relationships, triggers, stored procedures, multiple granularity, and functions. MYSQL also offers excellent data security, on-demand scalability, round-the-clock uptime, and comprehensive transactional support. The Java Database Connectivity (JDBC) drivers are available in the JDK versions. This will aid in the database connectivity between the application backend and the Database. Server-side validation will be done using the hibernate validator framework.
Determine how to implement the project based on the implementation options suggested. Provide a rationale to support the given answer
Infrastructure preparation. Many solutions are implemented in a separate and different production environment, from where the solution has been developed and tested. The properties of the production environment need to be taken into account. This strategy includes an examination of software, hardware, communication. The production infrastructure must be in place if you are ready for implementation.
Coordinating with the client organization. This may involve communicating with the client and making sure that both you and the client are ready for the implementation process.
Conducting training for the client organization employees to enlighten them on the functioning of the application. This should be done just before the implementation of the project to ensure maximum information retention.
Installing the project to production. This is the core activity of implementation .at this stage developer has to make sure that all product components are implemented. Optimally including hardware, program code, and databases.
Data conversion. Changing the data from one form to another takes place immediately after the project is implemented.
In-production verification. This implementation stage is to perform a test to ensure that all things are running according to plan. Project changes might affect how the general logic of operations is conducted. The new business process must be aligned together with the new system procedures.
Solution’ monitoring. This is to ensure that the project works as expected and take any corrective measure if any problems arise.
The deployment strategy for the online course development
In deployment, both the monitoring manager and the installation manager must also recognize the .war file or another format file. A variety of changes are made to the proposal during the approval period. The deployment manager would search for URL format, file size, file sort, date of release, and the period when the application War file has been accepted. The team also wants the hosting of the site application for hosts and instances.
For this function, the implementation team can also assist with F5 regulations, port opening, URL creation, load balance, etc. The network operating team provides for this. The technology team provides NFS download, preservation, and delivery of data, etc.
During the implementation process, there are some problems, such as which implements utilizing the deployment phase. Jenkins is the DevOps tool for continuing incorporation. This implies that we need very quickly to deploy software to the network. The difficult job is to set the Jenkins to the app servers. For deployment, it is also important to configure a web server.
Challenges the development team may face during the management system’s deployment
The deployment team may face a myriad of challenges when deploying the system. The unestablished project environment is still a widespread problem in terms of its effect on projects’ execution. If the environment is not accessible, there is no way you will continue with the project on schedule and budget. To ensure effective project creation, training and pre-production environments should be made accessible during development, testing, and user acceptance testing (UAT) processes. Quality Assurance is another challenge that the development team faces. Not checking the code or suppressing bugs is only a way for developers to save time and reach deadlines. A systematic method of quality assurance is necessary for an effective launch. If you’re seeing developers attempting to cut shortcuts in the production process, stop them right away. Encourage us to use better code construction techniques to fulfill the specifications more effectively and reliably. Undefined quality standards, identification of the defect are possible during functionality testing, even though it has been checked in a detailed unit during the production process. If you develop a research strategy, situations, circumstances, cases, and scripts, make sure that the test schedule addresses all the criteria that would be met by preparing multiple test cycles.
How the software and system updates would be applied and address the concerns that could cause issues during updates
Software updates are an integral part of ensuring that the systems are updated with the current technologies and are up to date with the latest security features. In the online cores management system, continuous software updates will take center stage to ensure its optimal performance. Downloadable software upgrades will be made available for the online course management system. These patches will be released frequently as and when there are updates. These downloadable software patches will integrate swiftly into the existing system components, thus providing little human intervention. The online course management will always be checking for available updates in specified secure online repositories. Once an update is found, the system will prompt the admin to download the patch to which the admin will agree or decline. Upon agreeing, the patch will be downloaded and integrated into the existing system.
Some of the significant issues in administering the updates may include the Lack of a stable internet connection. These updates can only be accessed online; thus, a stable internet connection must ensure that they are downloaded in full. Hardware incompatibility issues can also arise since the new updates may be incompatible with older hardware versions. Before installing the updates, the online course management system will prompt the user of the hardware requirements so that the software can run successfully. This will enable that user to determine whether it is time to update the software’s hardware components to run successfully.
References
An, Y., Wang, X., & Liu, X. (2020). Online intelligent course based on grid and FPGA system. Microprocessors and Microsystems, 79, 103320.
https://www.sciencedirect.com/science/article/pii/S0141933120304798
Nasr, O. A., Hassanen, M. A., Ahmed, A. A., & Ebrahim, F. A. T. Design and Implementation Web-Based System for Course Files Management using WEBML Methodology: A Higher Education Perspective (King Khalid University).
https://www.academia.edu/download/63481392/F805103862020200531-88819-nbfgyv
Pan, C. (2021). Design of sports course management system based on Internet of Things and FPGA system. Microprocessors and Microsystems, 80, 103357.
https://www.sciencedirect.com/science/article/pii/S0141933120305160
SOFTWARE VISUALIZATION 2
SOFTWARE VISUALIZATION 2
Software Visualization
Tom Anderson
Professor Haseltine
February 7, 2021
Introduction
Software visualization involves utilizing typography, cinematography, animation, and graphic design crafts with modern computer technology and human-computer interaction to enable effective computer software use and human understanding. It is the art of creating visual tools to display source code aspects or map software components. Architectural visualization is a graphical view of an architecture model. It is a 3D modeling of architectural design using computer graphics. This paper presents architectural visualizations of software systems, their descriptions, and benefits to various project stakeholders.
At least four architectural visualizations of software systems through using graphical tools in MS Visio
Microsoft Visio is a web platform that enables developers to create organizational charts, flow charts, and diagrams with much ease. The tool is integrated with charting process flows and embedded with system diagrams, generating accurate data flow documentation (Fonseca, Redondo, Valls & Villagrasa, 2017).
Table 1: Project Management
CREATE
SELECT
PLAN
MANAGE
PROPOSE
IDEA
INITIAL REVIEW
OF IDEA
COMPLETED REQUEST
REQUEST REVIEW
PORTFOLIO SELECTION
COMPLETED SELECTION
FULL PROJECT CASE
REVIEW AND APPROVAL OF PROJECT CASE
APPROVED
DENIED
DELIVER PROJECT
PROJECT SUSPENDED
POST PROJECT IMPLEMENTATION
The project aligns strategies and streamlines progress. It helps to gain stakeholder approval, ease project delivery, propose new plans, and create actionable steps for project completion.
Figure 1: Construction Workflow
WALL MASONRY
BASE CHECK
FOUNDATION EXCAVATION
SURVEY AND LINING
OF LAND
CONSTRUCTION PREPARATION
CONSTRUCTION IDEA
AND APPROVAL
MAINTENANCE
JOINTING
The diagram is a comprehensive workflow that engineers can utilize to track progress. It encompasses every step, including project preparation, foundation maintenance, and laying, with enumerated steps.
INITIAL PROJECT
DISCUSSION
GENERAL CONTRACTOR SELECTION
CONSTRUCTION DOCUMENTS AND PERMIT ACQUISITION
DESIGN DEVELOPMENT AND PERMIT DOCUMENTATION
ESTABLISH
FEASIBILITY
SCHEMATIC
DESIGN
INFORMATION GATHERING AND DOCUMENTATION
CONSTRUCTION
PROCESS BEGINS
Figure 2: Architectural Workflow
SOFTWARE VISUALIZATION 2
SOFTWARE VISUALIZATION 2
The above diagram is a visualization to track and document the related process with the architecture project—the diagram establishes steps to collect permit documents, create ideas, gain approval, and select contractors.
Benefits of Each Architectural Visualization To Various Projects Stakeholders
Architectural visualization help stakeholders to envision projects. Stakeholders can understand spatial and complex concepts through viewing. The models are connected to reality, which allows clients to understand the project scope. It acts as a selling point to engineering stakeholders (Merino, Ghafari, Anslow & Nierstrasz, 2018). The architectural designs provide the buy-in required to heighten the project, access building partners’ support, and ensure smooth construction. A well-designed architecture could be a critical and invaluable marketing aspect as it features tangible project visualization that leads to a finished project and a more positive build reception.
The flow chart enhances project speed. It saves valuable time during contraction by focusing efforts on priorities to be finished. As a result, a visual representation of projects helps contractors understand their tasks leading to a faster building process. Engineers can identify their roles, which provides valuable context in the planning process. Stakeholders and partners can refer to the model to track progress in the project (Escudero, Domínguez & Valls, 2016). Architectural models can help to access permits for a building project in an engineering and architectural process. In particular, regulators use the model to analyze the project’s potential environmental impact before providing a permit to proceed. Therefore, visual designs provide a better idea to expedite permits and paperwork.
An architectural model characterizes the building aspects properties and quantities, geometry, geographic information, cost estimates, spatial relationships, project schedule, and material inventories. The model demonstrates the building’s life cycle, integral in extracting shared properties and material quantities (Chae, 2017). The project scope can be defined and isolated on a relative scale within the facilities group. Through visual architecture design, construction documents can be interrelated, such as submittal processes, drawings, and procurement details.
Software architectural visualization helps architects to innovate solutions to problems creatively through collaboration. It enhances more substantial and efficient feedback loops. For instance, decision-makers and stakeholders communicate and collaborate effectively. They can express their concerts and execute critical recommendations (Merino, Ghafari, Anslow & Nierstrasz, 2018). Collaboration ensures high-quality visuals from an immersive experience through real-time renders to make project suggestions. More so, decision-makers and partners can highlight materials, structural plans, and textures, allowing everyone to stay updated. Enhanced collaboration through architectural visualization creates more space for cost savings, seamless workflow, idea flow, continuous communication, and shorter feedback loops.
Further, there is less likelihood for errors. A project’s visual project prototype enables construction workers and engineers to identify overlooked project mistakes. Inspection practices involving architectural visualization eliminates room for mistakes. It streamlines the planning period, allowing construction businesses to be finished to avoid penalties and maintain reputation (Chae, 2017).
References
Chae, H. (2017). Architectural visualization of a BIM-based model: 3D modeling and visualization.
Escudero, D. F., Domínguez, E. R., & Valls, F. (2016). Motivation and academic improvement using augmented reality for 3D architectural visualization. Education in the Knowledge Society, 17(1), 45-64.
Fonseca, D., Redondo, E., Valls, F., & Villagrasa, S. (2017). Technological adaptation of the student to the educational density of the course. A case study: 3D architectural visualization. Computers in Human Behavior, 72, 599-611.
Merino, L., Ghafari, M., Anslow, C., & Nierstrasz, O. (2018). A systematic literature review of software visualization evaluation. Journal of Systems and Software, 144, 165-180.