CST438 Learning Journal 7
This week working on these assignments, quizzes, and labs, I learned more about how software development processes affect the way a project is planned, documented, developed, tested, and deployed. One major topic was the difference between Agile and Plan and Document, also known as Waterfall. Plan and Document focuses on completing detailed requirements and design documentation before implementation begins. For example, we learned how a System Requirements Specification (SRS) documents functional and non-functional requirements so that developers, testers, managers, and other stakeholders have a common understanding of the system. Agile is more iterative. Instead of trying to completely define the system at the beginning, developers create working versions, receive feedback, and improve the system during short iterations.
The SRS assignment helped me understand requirements more clearly. I learned how to create use cases with actors such as the Customer and Driver in our taxi service. I also learned the difference between a use case summary and an actual UML use case diagram. The UML diagram visually shows actors, system boundaries, use cases, and their relationships. We also worked with ER diagrams, where entities, attributes, primary keys, foreign keys, relationships, and cardinalities describe the logical database design. Another important lesson was that non-functional requirements should be measurable instead of vague. Requirements such as response time, availability percentage, and security requirements are much more useful than simply saying a system should be “fast” or “secure.”
The AWS lab provided practical experience with deployment. We worked with services such as RDS, MySQL, EC2, RabbitMQ, ECR, ECS/Fargate, load balancers, and S3. I also learned how Docker environment variables and ECS task definitions configure containerized applications. Overall, these activities helped connect software requirements, UML and database modeling, implementation, testing, containers, and cloud deployment into the larger software development life cycle.
Comments
Post a Comment