Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 6 years ago.
Improve this question
In the UML reference manual page 18
Full specifications of a final system:
An implementation model includes enough information to build the system. It must include not only the logical semantics of the system and the algorithms, data structures, and mechanisms that ensure proper performance, but also organizational decisions about the system artifacts
that are necessary for cooperative work by humans and processing by tools
What the highlighted sentence means?
It basically means that with UML modeling, you can go far beyond describing algorithms. You can (and should) put the technical information in context and describe what the system you describe is good for, how it will be used, for what purpose and by whom.
Perhaps because it's an obscure usage, you might be wondering about the use of the word "artifacts" here. In this context, it refers to any of the persisted entities in your design, which can include databases, files, archives, cloud-storage, tapes, printouts, etc. Basically any component in the system that has a lifetime or can serve as long-term memory.
Related
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 1 year ago.
Improve this question
I made this use case diagram:
My project is a village profile website. It is made for collecting the questions from the researcher who wants answers directly from the locals, for any reasons: covid, communication etc.
As I am not experienced with use-cases,I want to make sure that I am going in the right way. Is this diagram correct?
A use-case diagram is about the big picture and the goals (use-case bubble) that a system (the rectangle) helps its actors to achieve.
According to your diagram, there would be 5 independent systems, each with some use-cases that address different needs. Is this really what you wanted to model?
When zooming into the different systems, it appears that these are not independent systems but function groups (i.e. groups of features that offer some functionality). It appears moreover that the use-cases do not correspond to user-goals, but to detailed functions related to the function group. So you seem to do some kind of functional decomposition.
Functional decomposition is fine. But not with use-cases! It always leads to very detailed diagrams that loose the big picture and end to be unrelated to the user’s interest.
Use-cases are not either meant for user-interface design (in case you wanted each rectangle correspond to some windows/pages), or for decomposing the internal structure of the system (in case you wanted each component to correspond to some microservice or whatever). Use-case should focus only on user goals that add value to the user (typically not a login, which is only a constraint for what the user really want to do).
Good news: there remains good potential to significantly simplify this diagram ;-)
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 1 year ago.
Improve this question
I'm making class diagram based on ECB pattern.
According to Wikipedia, every use case is represented as a control class.
Does this mean a 1:1 response?
For example, if I made 'Login' and 'Register' use cases, then does 'LoginController' and 'RegisterController' have to be there?
Can I integate them into 'ValidationContoller?'
I looked up information about the ECB, but it was hard to get detailed information. Thanks in advance for any helps.
No, there is no need for a one-to-one mapping at all.
As laid down in the wikipedia article:
ECB classes are first identified when use-cases are analyzed:
every use case is represented as a control class;
...
The classes are then refined and re-structured or reorganized as needed for the design, for example: ...
So the 1:1 is only the beginning of the analysis, and in no way a guidance for the implementation.
It is important to understand that this pattern originated in the 90's in a pre-agile context. Ivar Jacobson, the inventor of the use-cases, intended with ECB to be able to derive an implementation from the requirements (represented as use cases), and to keep a perfect traceability of the implementation back to the requirements. If you look for more details on this approach, you may read the Unified Software Development Process by Jacobson, Booch and Rumbaugh.
Not related: It may be useful to know that Jacobson's more recent work (e.g. Use Case 2.0) no longer mentions ECB, since modern agile approaches do not support the kind of upfront analysis assumed with ECB.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 3 months ago.
Improve this question
Describe the system architecture in the last 3 projects you worked on. In this case I don't know what system architecture they mean?
Which components listed above have you been working on?
What frameworks are used during the development of these components?"
From a interviewer perspective, they are trying to assess candidates knowledge of overall system they worked up on.
Describing system architecture will help interviewer to know whether candidate knows the big picture of the systems they were part of. The answer could be by explaining the logical architecture(functional view) of application or a component architecture(tech view) depending on context. For a person who is oriented more on infrastructure side, this could be still a bit different, but rarely the case.
Question "on which component have you worked" primarily is intended to understand what exactly was candidates role in project. Explanation on how the component was designed, what technologies are used etc could be answered.
"Frameworks used" would probably tell the interviewer whether candidate was into decision making roles for design or at least can evaluate what is best fit for the need and what is not. Mentioning the frameworks(or libraries or plugins based on tech landscape) used and how that well suit the needs would be a good answer.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 5 years ago.
Improve this question
What factors are important? How do you know if a given programming language is "simple" or "simpler" than another language?
I'm not sure if this is a fair question to ask, since different languages serve different purposes and it might not really be comparing apples to apples.
However, with that said, memory management would come to mind. One can argue that Java is a "simpler" language than C++, since it has a garbage collector that can deal with some of the complexities around memory management, instead of forcing you to do it yourself.
In my perspective, these are the points that define the complexity of a language.
Variation of syntax from common pseudocode and constructs
Ease of developing a structure for real-life entities like objects
Methods of structure enforcement at compile time.
Memory management strategy allocation/deallocation
Code reusability
Ease of code headers and directives management
Inbuilt libraries
Relative installation package sizes
Data exchange capabilities like over network of files
Process handling like thread management
Relative brevity of the code
Speed of compilation
Developer community size and documentation
OpenSource implementations
Platform dependence
And many more could be added to this list.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 6 years ago.
Improve this question
I want to know what kind of diagrams I should use in each step of a project lifestyle, for example in the first step I should do the use case diagram, but what diagrams should I do after this step, for example what diagrams I should use during the analyse of the project, the design, etc.
First of all you should decide which process model you want to use. Let it be Waterfall (not recommended), V-Model, Scrum, Unified Process, Rational Unified Process, etc.
Then you can start talking about first, second step and so on, because the steps depend on the process model that you use.
These diagrams you're referring to are also called artifacts, and you should only use them, if you need them and if they create value (more understanding for example), you should not use them just to have done it (only if it's an academic/school project and you want to learn).
If you want to improve your knowledge in that certain area, there are several good books out there, e.g. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development by Larman.